diff --git a/.gitattributes b/.gitattributes index dfe0770..5a0d5e4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,2 @@ # Auto detect text files and perform LF normalization -* text=auto +* text=auto eol=lf diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ca3795..c48defc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,40 +1,44 @@ -# Automatically build the project and run any configured tests for every push -# and submitted pull request. This can help catch issues that only occur on -# certain platforms or Java versions, and provides a first line of defence -# against bad commits. - -name: build -on: [pull_request, push] +name: Build +on: + - pull_request + - push jobs: build: - strategy: - matrix: - # Use these Java versions - java: [ - 17, # Current Java LTS & minimum supported by Minecraft - ] - # and run on both Linux and Windows - os: [ubuntu-22.04, windows-2022] - runs-on: ${{ matrix.os }} + if: "! contains(toJSON(github.event.commits.*.message), '[ci skip]')" + runs-on: ubuntu-latest steps: - - name: checkout repository - uses: actions/checkout@v3 - - name: validate gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - name: setup jdk ${{ matrix.java }} - uses: actions/setup-java@v3 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Validate Gradle wrapper + uses: gradle/actions/wrapper-validation@v3 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 21 + - name: Use Gradle cache for faster builds + uses: actions/cache@v4 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + - name: Cleanup Gradle Cache + # Remove some files from the Gradle cache, so they aren't cached by GitHub Actions. + # Restoring these files from a GitHub Actions cache might cause problems for future builds. + run: | + rm -f ~/.gradle/caches/modules-2/modules-2.lock + rm -f ~/.gradle/caches/modules-2/gc.properties + - name: Setup Gradle Wrapper Cache + uses: actions/cache@v4 with: - java-version: ${{ matrix.java }} - distribution: 'microsoft' - - name: make gradle wrapper executable - if: ${{ runner.os != 'Windows' }} - run: chmod +x ./gradlew - - name: build + path: ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} + - name: Grant execute permission to gradlew + run: chmod +x gradlew + - name: Build run: ./gradlew build - - name: capture build artifacts - if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v3 + - name: Upload artifacts + uses: actions/upload-artifact@v4 with: - name: Artifacts + name: AutoSlabs path: build/libs/ \ No newline at end of file diff --git a/README.md b/README.md index f49b492..c15aa99 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ # Auto Slabs - Automatically Generate vertical slabs for every instance of SlabBlock + Automatically generate vertical slabs for every instance of SlabBlock. Supports Vanilla, as well as any mod that adds Slabs. + +#### A key bind to change the placement mode `K` (Can be changed in the key binds menu) + +## Easy config with modmenu +- Placement Master Toggle: Toggles the ability to vertical slabs +- Crosshair Icon Visibility: How long will the icon be showed for after changing the placement mode +- Slab Lines: Toggles the placement guid when looking at blocks + +![config-menu](https://github.com/user-attachments/assets/7bd51ab0-819b-413e-a9f8-f7b1a1ef35fd) + + +https://github.com/Andrew6rant/Auto-Slabs/assets/57331134/84e2186a-f51c-4147-b98d-9eca6235cc46 + +Mixed slab functionality and rendering is being tracked on the [mixedslabs branch](https://github.com/Andrew6rant/Auto-Slabs/tree/mixedslabs) of this repository + +https://github.com/Andrew6rant/Auto-Slabs/assets/57331134/ba89a5bd-cac9-4c24-bb84-bf58e168b73d + diff --git a/build.gradle b/build.gradle index ceedfc3..e16126d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,9 @@ plugins { - id 'fabric-loom' version '1.0-SNAPSHOT' + id 'fabric-loom' version '1.11-SNAPSHOT' id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_17 -targetCompatibility = JavaVersion.VERSION_17 - archivesBaseName = project.archives_base_name version = project.mod_version group = project.maven_group @@ -17,12 +14,18 @@ repositories { // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. - maven { - url = "https://jitpack.io" - } maven { url = uri("https://ueaj.dev/maven") } + maven { + url "https://maven.terraformersmc.com/releases/" + } + maven { + url "https://jitpack.io" + } + maven { + url = "https://api.modrinth.com/maven" + } } dependencies { @@ -33,30 +36,51 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - - // Uncomment the following line to enable the deprecated Fabric API modules. + + // ARRP from JitPack + modImplementation include("com.github.TriibuNupsik:ARRP:${project.arrp_version}") + + // MidnightLib from TeamMidnightDust + modImplementation include ("maven.modrinth:midnightlib:${project.midnightlib_version}") + + modImplementation ("com.terraformersmc:modmenu:${project.modmenu_version}") { + exclude module: "fabric-api" + } + + // Uncomment the following line to enable the deprecated Fabric API modules. // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time. // modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}" - modApi("com.github.Virtuoel:Statement:${project.statement_version}", { - exclude group: "net.fabricmc.fabric-api" - }) - modImplementation("net.devtech:arrp:${project.arrp_version}") } processResources { inputs.property "version", project.version + inputs.property "loader_version", project.loader_version + filteringCharset "UTF-8" filesMatching("fabric.mod.json") { - expand "version": project.version + expand "version": project.version, + "loader_version": project.loader_version } } +def targetJavaVersion = 17 tasks.withType(JavaCompile).configureEach { - it.options.release = 17 + // ensure that the encoding is set to UTF-8, no matter what the system default is + // this fixes some edge cases with special characters not displaying correctly + // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html + // If Javadoc is generated, this must be specified in that task too. + it.options.encoding = "UTF-8" + if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { + it.options.release.set(targetJavaVersion) + } } java { + def javaVersion = JavaVersion.toVersion(targetJavaVersion) + if (JavaVersion.current() < javaVersion) { + toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) + } // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. // If you remove this line, sources will not be generated. @@ -72,7 +96,8 @@ jar { // configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } diff --git a/gradle.properties b/gradle.properties index 3a82e22..c2cfef2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,16 +4,18 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.19.3 -yarn_mappings=1.19.3+build.5 -loader_version=0.14.12 +minecraft_version=1.21.1 +yarn_mappings=1.21.1+build.3 +loader_version=0.16.0 # Mod Properties -mod_version=1.0.0 +mod_version=1.2.0 maven_group=io.github.andrew6rant.autoslabs archives_base_name=autoslabs # Dependencies -fabric_version=0.72.0+1.19.3 -statement_version=4.2.5 -arrp_version=0.6.7 \ No newline at end of file +fabric_version=0.116.4+1.21.1 +# statement_version=4.2.9 # Removed - using internal fork +arrp_version=0.10.0 +midnightlib_version=1.6.9+1.21-fabric +modmenu_version=11.0.3 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f398c33..3c44eb1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabs.java b/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabs.java index 19da54d..8d26499 100644 --- a/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabs.java +++ b/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabs.java @@ -1,87 +1,56 @@ package io.github.andrew6rant.autoslabs; +import io.github.andrew6rant.autoslabs.config.CommonConfig; +import io.github.andrew6rant.autoslabs.statement.StatementStateRefresher; +import io.github.andrew6rant.autoslabs.util.Util; import net.devtech.arrp.api.RRPCallback; import net.devtech.arrp.api.RuntimeResourcePack; -import net.devtech.arrp.json.blockstate.JState; -import net.devtech.arrp.json.blockstate.JVariant; -import net.devtech.arrp.json.models.JModel; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.block.Block; -import net.minecraft.block.SlabBlock; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.registry.Registries; -import net.minecraft.state.property.EnumProperty; import net.minecraft.util.Identifier; -import net.minecraft.util.math.Direction; -import virtuoel.statement.api.StateRefresher; + +import java.util.HashMap; +import java.util.Map; + +import static io.github.andrew6rant.autoslabs.config.CommonConfig.dumpResources; public class AutoSlabs implements ModInitializer { - public static final RuntimeResourcePack AUTO_SLABS_RESOURCES = RuntimeResourcePack.create("autoslabs:resources"); + public static final RuntimeResourcePack AUTO_SLABS_RESOURCES = RuntimeResourcePack.create(Identifier.of("autoslabs", "resources")); + + public static final Map slabLockPosition = new HashMap<>(); @Override public void onInitialize() { + // Register config with MidnightLib + CommonConfig.init("auto_slabs", CommonConfig.class); + + // Config is initialized in a static block in StateMixin. I need it to run earlier than State$get, and AutoSlabs$onInitialize is too late. for (Block block : Registries.BLOCK) { - if (block instanceof SlabBlock) { - StateRefresher.INSTANCE.addBlockProperty(block, EnumProperty.of("vertical_type", VerticalType.class), VerticalType.FALSE); - Identifier id = Registries.BLOCK.getId(block); - String namespace = id.getNamespace(); - String path = id.getPath(); - Identifier vertical_north_south_top_slab = new Identifier(namespace, "block/"+path + "_vertical_north_south_top"); - Identifier vertical_north_south_bottom_slab = new Identifier(namespace, "block/"+path + "_vertical_north_south_bottom"); - Identifier vertical_east_west_top_slab = new Identifier(namespace, "block/"+path + "_vertical_east_west_top"); - Identifier vertical_east_west_bottom_slab = new Identifier(namespace, "block/"+path + "_vertical_east_west_bottom"); - // Yes, I know these models are incredibly inefficient, but I need to parent them this way for the best mod compatibility. - JModel verticalSlabNorthSouthTopModel = JModel.model().parent(namespace+":block/"+path) - .element(JModel.element().from(0, 0, 0).to(16, 16, 8) - .faces(JModel.faces() - .north(JModel.face("side").cullface(Direction.NORTH).uv(0, 0, 16, 16)) - .east(JModel.face("side").cullface(Direction.EAST).uv(0, 0, 8, 16)) - .south(JModel.face("side").cullface(Direction.SOUTH).uv(0, 0, 16, 16)) - .west(JModel.face("side").cullface(Direction.WEST).uv(0, 0, 8, 16)) - .up(JModel.face("top").cullface(Direction.UP).uv(0, 0, 16, 8)) - .down(JModel.face("bottom").cullface(Direction.DOWN).uv(0, 0, 16, 8)))); - JModel verticalSlabNorthSouthBottomModel = JModel.model().parent(namespace+":block/"+path) - .element(JModel.element().from(0, 0, 8).to(16, 16, 16) - .faces(JModel.faces() - .north(JModel.face("side").cullface(Direction.NORTH).uv(0, 0, 16, 16)) - .east(JModel.face("side").cullface(Direction.EAST).uv(0, 0, 8, 16)) - .south(JModel.face("side").cullface(Direction.SOUTH).uv(0, 0, 16, 16)) - .west(JModel.face("side").cullface(Direction.WEST).uv(8, 0, 16, 16)) - .up(JModel.face("top").cullface(Direction.UP).uv(0, 8, 16, 16)) - .down(JModel.face("bottom").cullface(Direction.DOWN).uv(0, 0, 16, 8)))); - JModel verticalSlabEastWestTopModel = JModel.model().parent(namespace+":block/"+path) - .element(JModel.element().from(8, 0, 0).to(16, 16, 16) - .faces(JModel.faces() - .north(JModel.face("side").cullface(Direction.NORTH).uv(0, 0, 8, 16)) - .east(JModel.face("side").cullface(Direction.EAST).uv(0, 0, 16, 16)) - .south(JModel.face("side").cullface(Direction.SOUTH).uv(8, 0, 16, 16)) - .west(JModel.face("side").cullface(Direction.WEST).uv(0, 0, 16, 16)) - .up(JModel.face("top").cullface(Direction.UP).uv(8, 0, 16, 16)) - .down(JModel.face("bottom").cullface(Direction.DOWN).uv(8, 0, 16, 16)))); - JModel verticalSlabEastWestBottomModel = JModel.model().parent(namespace+":block/"+path) - .element(JModel.element().from(0, 0, 0).to(8, 16, 16) - .faces(JModel.faces() - .north(JModel.face("side").cullface(Direction.NORTH).uv(8, 0, 16, 16)) - .east(JModel.face("side").cullface(Direction.EAST).uv(0, 0, 16, 16)) - .south(JModel.face("side").cullface(Direction.SOUTH).uv(0, 0, 8, 16)) - .west(JModel.face("side").cullface(Direction.WEST).uv(0, 0, 16, 16)) - .up(JModel.face("top").cullface(Direction.UP).uv(0, 0, 8, 16)) - .down(JModel.face("bottom").cullface(Direction.DOWN).uv(0, 0, 8, 16)))); + Util.registerSlab(block); + } + + RegistryEntryAddedCallback.event(Registries.BLOCK).register((raw, id, block) -> Util.registerSlab(block)); + PayloadTypeRegistry.playC2S().register(SlabLockPayload.ID, SlabLockPayload.CODEC); - AUTO_SLABS_RESOURCES.addModel(verticalSlabNorthSouthTopModel, vertical_north_south_top_slab); - AUTO_SLABS_RESOURCES.addModel(verticalSlabNorthSouthBottomModel, vertical_north_south_bottom_slab); - AUTO_SLABS_RESOURCES.addModel(verticalSlabEastWestTopModel, vertical_east_west_top_slab); - AUTO_SLABS_RESOURCES.addModel(verticalSlabEastWestBottomModel, vertical_east_west_bottom_slab); + StatementStateRefresher.INSTANCE.reorderBlockStates(); - AUTO_SLABS_RESOURCES.addBlockState(JState.state(new JVariant() - .put("type=bottom,vertical_type=north_south", JState.model(vertical_north_south_bottom_slab)) - .put("type=bottom,vertical_type=east_west", JState.model(vertical_east_west_bottom_slab)) - .put("type=top,vertical_type=north_south", JState.model(vertical_north_south_top_slab)) - .put("type=top,vertical_type=east_west", JState.model(vertical_east_west_top_slab)) - ), id); - } + // custom ARRP entrypoint that is only available in my fork of ARRP + RRPCallback.BETWEEN_MODS_AND_USER.register(a -> a.add(AUTO_SLABS_RESOURCES)); + if (dumpResources) { + AUTO_SLABS_RESOURCES.dump(); } - StateRefresher.INSTANCE.reorderBlockStates(); - RRPCallback.BEFORE_USER.register(a -> a.add(AUTO_SLABS_RESOURCES)); - //AUTO_SLABS_RESOURCES.dump(); + + ServerPlayNetworking.registerGlobalReceiver(SlabLockPayload.ID, (payload, context) -> { + SlabLockEnum slabLockBuf = SlabLockEnum.POSITION_VALUES[payload.slabLock()]; + slabLockPosition.put(context.player(), slabLockBuf); + }); + + // Initialize placement handler + PlacementHandler.init(); } } \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsClient.java b/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsClient.java index 8204f5f..1de61bc 100644 --- a/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsClient.java +++ b/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsClient.java @@ -1,10 +1,103 @@ package io.github.andrew6rant.autoslabs; +import io.github.andrew6rant.autoslabs.util.RenderUtil; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; +import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.fabricmc.fabric.api.resource.ResourcePackActivationType; +import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.loader.api.ModContainer; +import net.minecraft.block.SlabBlock; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.option.KeyBinding; +import net.minecraft.client.util.InputUtil; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import org.lwjgl.glfw.GLFW; +import static io.github.andrew6rant.autoslabs.config.CommonConfig.showCrosshairIcon; public class AutoSlabsClient implements ClientModInitializer { + final ModContainer container = FabricLoader.getInstance().getModContainer("autoslabs").get(); + + public static KeyBinding SLAB_LOCK_KEYBIND = KeyBindingHelper.registerKeyBinding( + new KeyBinding("key.autoslabs.place_mode", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_K, "category.autoslabs.keybinds") + ); + + private static Boolean validKeyPress = true; + public static SlabLockEnum clientSlabLockPosition = SlabLockEnum.DEFAULT_AUTOSLABS; + private static long slabIconVisibleUntil = 0; + + private void sendKeybind(SlabLockEnum lockedPosition) { + SlabLockPayload payload = new SlabLockPayload(lockedPosition.ordinal()); + ClientPlayNetworking.send(payload); + } + + private void setKeybind(MinecraftClient client) { + clientSlabLockPosition = clientSlabLockPosition.loop(client.options.sneakKey.isPressed()); + sendKeybind(clientSlabLockPosition); + client.player.sendMessage(Text.translatable("text.autoslabs.slab_lock."+ clientSlabLockPosition.toString()), true); + // Show icon for 3 seconds when mode changes + slabIconVisibleUntil = System.currentTimeMillis() + 3000; + } + @Override public void onInitializeClient() { - // This entrypoint is suitable for setting up client-specific logic, such as rendering. + ResourceManagerHelper.registerBuiltinResourcePack(Identifier.of("autoslabs", "distinct_slabs"), container, Text.literal("Distinct Slabs (Built-In)"), ResourcePackActivationType.DEFAULT_ENABLED); + + ClientTickEvents.END_CLIENT_TICK.register(client -> { + if (client.player != null) { + if (SLAB_LOCK_KEYBIND.isPressed() && validKeyPress) { + ItemStack heldItem = client.player.getStackInHand(client.player.getActiveHand()); + if (heldItem != null && !heldItem.isEmpty() && heldItem.getItem() instanceof BlockItem && ((BlockItem) heldItem.getItem()).getBlock() instanceof SlabBlock) { + validKeyPress = false; + setKeybind(client); + } + } + if (!SLAB_LOCK_KEYBIND.isPressed() && !validKeyPress) { + validKeyPress = true; + } + } + }); + + HudRenderCallback.EVENT.register((drawContext, tickDelta) -> { + MinecraftClient client = MinecraftClient.getInstance(); + if (client.player == null) return; + + // Check if player is holding a slab + ItemStack heldItem = client.player.getStackInHand(client.player.getActiveHand()); + boolean holdingSlab = heldItem != null && !heldItem.isEmpty() && + heldItem.getItem() instanceof BlockItem && + ((BlockItem) heldItem.getItem()).getBlock() instanceof SlabBlock; + + // Don't show icon if not holding slab + if (!holdingSlab) return; + + // Handle different visibility modes + switch (showCrosshairIcon) { + case NEVER -> { return; } + case ON_CHANGE -> { + if (System.currentTimeMillis() > slabIconVisibleUntil) return; + } + case ALWAYS -> { + // Always show, no additional checks needed + } + } + + switch (clientSlabLockPosition) { + case DEFAULT_AUTOSLABS -> RenderUtil.drawSlabIcon(drawContext, 0, 48); + case BOTTOM_SLAB -> RenderUtil.drawSlabIcon(drawContext, 0, 0); + case TOP_SLAB -> RenderUtil.drawSlabIcon(drawContext, 16, 0); + case NORTH_SLAB_VERTICAL -> RenderUtil.drawSlabIcon(drawContext, 0, 16); + case SOUTH_SLAB_VERTICAL -> RenderUtil.drawSlabIcon(drawContext, 16, 16); + case EAST_SLAB_VERTICAL -> RenderUtil.drawSlabIcon(drawContext, 0, 32); + case WEST_SLAB_VERTICAL -> RenderUtil.drawSlabIcon(drawContext, 16, 32); + case VANILLA_PLACEMENT -> RenderUtil.drawSlabIcon(drawContext, 32, 0); + } + }); } } \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsDataGenerator.java b/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsDataGenerator.java deleted file mode 100644 index cdad580..0000000 --- a/src/main/java/io/github/andrew6rant/autoslabs/AutoSlabsDataGenerator.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.github.andrew6rant.autoslabs; - -import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; - -public class AutoSlabsDataGenerator implements DataGeneratorEntrypoint { - @Override - public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { - - } -} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/PlacementHandler.java b/src/main/java/io/github/andrew6rant/autoslabs/PlacementHandler.java new file mode 100644 index 0000000..075fd49 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/PlacementHandler.java @@ -0,0 +1,121 @@ +package io.github.andrew6rant.autoslabs; + +import io.github.andrew6rant.autoslabs.config.CommonConfig; +import io.github.andrew6rant.autoslabs.util.PlacementUtil; +import net.fabricmc.fabric.api.event.player.UseBlockCallback; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.world.World; + +public class PlacementHandler { + + public static void init() { + UseBlockCallback.EVENT.register(PlacementHandler::onUseBlock); + } + + private static ActionResult onUseBlock(PlayerEntity player, World world, Hand hand, BlockHitResult hitResult) { + ItemStack stack = player.getStackInHand(hand); + + // Check if this is a slab item + if (!(stack.getItem() instanceof BlockItem blockItem) || !(blockItem.getBlock() instanceof SlabBlock)) { + return ActionResult.PASS; // Let vanilla handle non-slab items + } + + // Check if autoslabs is enabled and player is not using vanilla placement mode + if (!CommonConfig.enableSlabLock || + AutoSlabs.slabLockPosition.getOrDefault(player, SlabLockEnum.DEFAULT_AUTOSLABS).equals(SlabLockEnum.VANILLA_PLACEMENT)) { + return ActionResult.PASS; // Let vanilla handle when disabled or in vanilla placement mode + } + + // Create placement context to check if this is actually a valid slab placement + ItemPlacementContext context = new ItemPlacementContext(player, hand, stack, hitResult); + BlockPos placementPos = context.getBlockPos(); + BlockState currentState = world.getBlockState(placementPos); + + // Only handle if we're placing on a slab or empty space (not on other blocks) + boolean shouldHandle = currentState.getBlock() instanceof SlabBlock || currentState.isAir(); + + if (!shouldHandle) { + return ActionResult.PASS; + } + + // Client-side: Return SUCCESS to allow animation but prevent vanilla placement + if (world.isClient) { + return ActionResult.SUCCESS; + } + + // Server-side: Handle actual placement + if (player instanceof ServerPlayerEntity serverPlayer && world instanceof ServerWorld serverWorld) { + return handleServerPlacement(serverPlayer, serverWorld, hand, hitResult, stack, blockItem); + } + + return ActionResult.PASS; + } + + private static ActionResult handleServerPlacement(ServerPlayerEntity player, ServerWorld world, Hand hand, + BlockHitResult hitResult, ItemStack stack, BlockItem blockItem) { + // Create placement context + ItemPlacementContext context = new ItemPlacementContext(player, hand, stack, hitResult); + + // Get the actual placement position (context handles offset logic) + BlockPos placementPos = context.getBlockPos(); + BlockState currentState = world.getBlockState(placementPos); + + // Check if player can place at this position + if (!player.canPlaceOn(placementPos, hitResult.getSide(), stack)) { + return ActionResult.FAIL; + } + + // Check if there's an entity in the way (simplified check) + if (!world.getOtherEntities(null, new Box(placementPos)).isEmpty()) { + return ActionResult.FAIL; + } + + // Calculate placement state + BlockState placementState = PlacementUtil.calcPlacementState(context, blockItem.getBlock().getDefaultState()); + + if (placementState == null) { + return ActionResult.FAIL; + } + + // Check if we can replace the existing block (only if it's a slab) + if (currentState.getBlock() instanceof SlabBlock && !PlacementUtil.canReplace(currentState, context)) { + return ActionResult.FAIL; + } + + // Check if the placement state can be placed at this position + if (!placementState.canPlaceAt(world, placementPos)) { + return ActionResult.FAIL; + } + + // Place the block at the correct position + boolean placed = world.setBlockState(placementPos, placementState); + + if (placed) { + // Play placement sound + world.playSound(null, placementPos, SoundEvents.BLOCK_STONE_PLACE, SoundCategory.BLOCKS, 1.0f, 1.0f); + + // Decrement item stack (only on server) + if (!player.getAbilities().creativeMode) { + stack.decrement(1); + } + + return ActionResult.SUCCESS; + } + + return ActionResult.FAIL; + } +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/PlacementUtil.java b/src/main/java/io/github/andrew6rant/autoslabs/PlacementUtil.java deleted file mode 100644 index 8f94bac..0000000 --- a/src/main/java/io/github/andrew6rant/autoslabs/PlacementUtil.java +++ /dev/null @@ -1,84 +0,0 @@ -package io.github.andrew6rant.autoslabs; - -import net.minecraft.block.BlockState; -import net.minecraft.block.enums.SlabType; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; - -import static net.minecraft.block.SlabBlock.TYPE; -import static net.minecraft.block.SlabBlock.WATERLOGGED; -import static net.minecraft.block.enums.SlabType.BOTTOM; -import static net.minecraft.block.enums.SlabType.TOP; - -public class PlacementUtil { - private static final EnumProperty VERTICAL_TYPE; - static { - VERTICAL_TYPE = EnumProperty.of("vertical_type", VerticalType.class); - } - public static BlockState calcPlacementState(ItemPlacementContext ctx, BlockState state) { - BlockPos blockPos = ctx.getBlockPos(); - BlockState blockState = ctx.getWorld().getBlockState(blockPos); - if (blockState.isOf(state.getBlock())) { - return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); - } else { - Direction ctxSide = ctx.getSide(); - Vec3d vec3d = ctx.getHitPos().subtract(blockPos.getX(), blockPos.getY(), blockPos.getZ()); - FluidState fluidState = ctx.getWorld().getFluidState(blockPos); - - double x = vec3d.x; - double y = vec3d.y; - double z = vec3d.z; - - double offH = 0; - double offV = 0; - - switch (ctxSide) { - case UP, DOWN -> { - offH = Math.abs(x - 0.5d); - offV = Math.abs(z - 0.5d); - if (offH > 0.25d || offV > 0.25d) { - if (offH > offV) { - return state.with(TYPE, x < 0.5d ? BOTTOM : TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } else { - return state.with(TYPE, z < 0.5d ? TOP : BOTTOM).with(VERTICAL_TYPE, VerticalType.NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } - } else { - return state.with(TYPE, y < 0.5d ? BOTTOM : TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } - } - case NORTH, SOUTH -> { - offH = Math.abs(x - 0.5d); - offV = Math.abs(y - 0.5d); - if (offH > 0.25d || offV > 0.25d) { - if (offH > offV) { - return state.with(TYPE, x < 0.5d ? BOTTOM : TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } else { - return state.with(TYPE, y < 0.5d ? BOTTOM : TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } - } else { - return state.with(TYPE, z < 0.5d ? TOP : BOTTOM).with(VERTICAL_TYPE, VerticalType.NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } - } - case EAST, WEST -> { - offH = Math.abs(z - 0.5d); - offV = Math.abs(y - 0.5d); - if (offH > 0.25d || offV > 0.25d) { - if (offH > offV) { - return state.with(TYPE, z < 0.5d ? TOP : BOTTOM).with(VERTICAL_TYPE, VerticalType.NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } else { - return state.with(TYPE, y < 0.5d ? BOTTOM : TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } - } else { - return state.with(TYPE, x < 0.5d ? BOTTOM : TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); - } - } - } - return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); - } - } -} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/RenderUtil.java b/src/main/java/io/github/andrew6rant/autoslabs/RenderUtil.java deleted file mode 100644 index 526e2ba..0000000 --- a/src/main/java/io/github/andrew6rant/autoslabs/RenderUtil.java +++ /dev/null @@ -1,525 +0,0 @@ -package io.github.andrew6rant.autoslabs; - -import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.SlabBlock; -import net.minecraft.block.enums.SlabType; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.render.*; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec2f; -import net.minecraft.util.math.Vec3d; -import org.joml.Vector3f; - -import java.util.Objects; -import java.util.Optional; - -// massive thanks to Schauweg for much of this code -public class RenderUtil { - private static final EnumProperty VERTICAL_TYPE; - static { - VERTICAL_TYPE = EnumProperty.of("vertical_type", VerticalType.class); - } - - public static void renderOverlay(MatrixStack matrices, Camera camera) { - ClientPlayerEntity player = MinecraftClient.getInstance().player; - if (Block.getBlockFromItem(player.getStackInHand(player.getActiveHand()).getItem()) instanceof SlabBlock || (Block.getBlockFromItem(player.getOffHandStack().getItem()) instanceof SlabBlock && player.getMainHandStack().isEmpty())) { - - HitResult hitResult = MinecraftClient.getInstance().crosshairTarget; - - if (hitResult.getType() == HitResult.Type.BLOCK) { - - BlockHitResult result = (BlockHitResult) hitResult; - HitPart part = getHitPart(result); - - Vec3d camDif = getCameraOffset(camera.getPos(), result.getBlockPos(), result.getSide()); - - RenderSystem.setShader(GameRenderer::getRenderTypeLinesProgram); - // default Minecraft line width - RenderSystem.lineWidth(Math.max(2.5f, (float)MinecraftClient.getInstance().getWindow().getFramebufferWidth() / 1920.0f * 2.5f)); - //RenderSystem.disableDepthTest(); - RenderSystem.disableCull(); - //RenderSystem.enableBlend(); - //RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ZERO); - //RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA); - - - matrices.push(); - BlockState state = MinecraftClient.getInstance().world.getBlockState(result.getBlockPos()); - if (state.getBlock() instanceof SlabBlock) { - renderOverlayToDirection(state, result.getSide(), matrices, camDif, part); - } else { - renderOverlayToDirection(null, result.getSide(), matrices, camDif, part); - } - - - matrices.pop(); - RenderSystem.enableDepthTest(); - RenderSystem.enableCull(); - - } - } - } - - private static void drawLine(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f start, Vector3f end) { - Vector3f normal = getNormalAngle(start, end); - float r = 0; - float g = 0; - float b = 0; - float a = 0.2f; - - Vector3f startRaw = new Vector3f((float) (start.x + camDif.x), (float) (start.y + camDif.y), (float) (start.z + camDif.z)); - Vector3f endRaw = new Vector3f((float) (end.x + camDif.x), (float) (end.y + camDif.y), (float) (end.z + camDif.z)); - - buffer.vertex(entry.getPositionMatrix(), startRaw.x, startRaw.y, startRaw.z) - .color(r, g, b, a).normal(entry.getNormalMatrix(), normal.x, normal.y, normal.z).next(); - - buffer.vertex(entry.getPositionMatrix(), endRaw.x, endRaw.y, endRaw.z) - .color(r, g, b, a).normal(entry.getNormalMatrix(), normal.x, normal.y, normal.z).next(); - } - - private static void drawCulledLine(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f start, Vector3f end) { - Vector3f normal = getNormalAngle(start, end); - float r = 0; - float g = 0; - float b = 0; - float a = 0.2f; - - Vector3f startRaw = new Vector3f((float) (start.x + camDif.x), (float) (start.y + camDif.y), (float) (start.z + camDif.z)); - Vector3f endRaw = new Vector3f((float) (end.x + camDif.x), (float) (end.y + camDif.y), (float) (end.z + camDif.z)); - - buffer.vertex(entry.getPositionMatrix(), startRaw.x, startRaw.y, startRaw.z) - .color(r, g, b, a).normal(entry.getNormalMatrix(), normal.x, normal.y, normal.z).next(); - - //System.out.println("x: " + endRaw.x + " y: " + endRaw.y+ " z: " + endRaw.z); - //.vertex(entry.getPositionMatrix(), Math.min(endRaw.x, 0.5f), Math.min(endRaw.y, 0.5f), Math.min(endRaw.z, 0.5f)) - // .color(r, g, b, a).normal(entry.getNormalMatrix(), normal.x, normal.y, normal.z).next(); - buffer.vertex(entry.getPositionMatrix(), endRaw.x, endRaw.y, endRaw.z) - .color(r, g, b, a).normal(entry.getNormalMatrix(), normal.x, normal.y, normal.z).next(); - } - - public static Vector3f getNormalAngle(Vector3f start, Vector3f end) { - float xLength = end.x - start.x; - float yLength = end.y - start.y; - float zLength = end.z - start.z; - float distance = (float) Math.sqrt(xLength * xLength + yLength * yLength + zLength * zLength); - xLength /= distance; - yLength /= distance; - zLength /= distance; - return new Vector3f(xLength, yLength, zLength); - } - - private static void renderOverlayToDirection(BlockState state, Direction side, MatrixStack matrixStack, Vec3d camDif, HitPart part) { - - //ArrayList points = new ArrayList(); - Vector3f vecBottomLeft = null, vecBottomRight = null, vecTopLeft = null, vecTopRight = null, - vecCenterBottomLeft = null, vecCenterBottomRight = null, vecCenterTopLeft = null, vecCenterTopRight = null, - vecCenterMiddleLeft = null, vecCenterMiddleRight = null, vecCenterMiddleBottom = null, vecCenterMiddleTop = null; - - //System.out.println(side); - - //@formatter:off - switch (side) { - case DOWN -> { - vecBottomLeft = new Vector3f(0, 0, 0); - vecBottomRight = new Vector3f(1, 0, 0); - vecTopLeft = new Vector3f(0, 0, 1); - vecTopRight = new Vector3f(1, 0, 1); - vecCenterBottomLeft = new Vector3f(0.25f, 0, 0.25f); - vecCenterBottomRight = new Vector3f(0.75f, 0, 0.25f); - vecCenterTopLeft = new Vector3f(0.25f, 0, 0.75f); - vecCenterTopRight = new Vector3f(0.75f, 0, 0.75f); - vecCenterMiddleLeft = new Vector3f(0.25f, 0, 0.5f); - vecCenterMiddleRight = new Vector3f(0.75f, 0, 0.5f); - vecCenterMiddleBottom = new Vector3f(0.5f, 0, 0.25f); - vecCenterMiddleTop = new Vector3f(0.5f, 0, 0.75f); - } - case UP -> { - vecBottomLeft = new Vector3f(1, 1, 0); - vecBottomRight = new Vector3f(0, 1, 0); - vecTopLeft = new Vector3f(1, 1, 1); - vecTopRight = new Vector3f(0, 1, 1); - vecCenterBottomLeft = new Vector3f(0.75f, 1, 0.25f); - vecCenterBottomRight = new Vector3f(0.25f, 1, 0.25f); - vecCenterTopLeft = new Vector3f(0.75f, 1, 0.75f); - vecCenterTopRight = new Vector3f(0.25f, 1, 0.75f); - vecCenterMiddleLeft = new Vector3f(0.75f, 1, 0.5f); - vecCenterMiddleRight = new Vector3f(0.25f, 1, 0.5f); - vecCenterMiddleBottom = new Vector3f(0.5f, 1, 0.25f); - vecCenterMiddleTop = new Vector3f(0.5f, 1, 0.75f); - } - case NORTH -> { - vecBottomLeft = new Vector3f(1, 0, 0); - vecBottomRight = new Vector3f(0, 0, 0); - vecTopLeft = new Vector3f(1, 1, 0); - vecTopRight = new Vector3f(0, 1, 0); - vecCenterBottomLeft = new Vector3f(0.75f, 0.25f, 0); - vecCenterBottomRight = new Vector3f(0.25f, 0.25f, 0); - vecCenterTopLeft = new Vector3f(0.75f, 0.75f, 0); - vecCenterTopRight = new Vector3f(0.25f, 0.75f, 0); - vecCenterMiddleLeft = new Vector3f(0.75f, 0.5f, 0); - vecCenterMiddleRight = new Vector3f(0.25f, 0.5f, 0); - - vecCenterMiddleBottom = new Vector3f(0.5f, 0.25f, 0); - vecCenterMiddleTop = new Vector3f(0.5f, .75f, 0); - } - case SOUTH -> { - vecBottomLeft = new Vector3f(0, 0, 1); - vecBottomRight = new Vector3f(1, 0, 1); - vecTopLeft = new Vector3f(0, 1, 1); - vecTopRight = new Vector3f(1, 1, 1); - vecCenterBottomLeft = new Vector3f(0.25f, 0.25f, 1); - vecCenterBottomRight = new Vector3f(0.75f, 0.25f, 1); - vecCenterTopLeft = new Vector3f(0.25f, 0.75f, 1); - vecCenterTopRight = new Vector3f(0.75f, 0.75f, 1); - vecCenterMiddleLeft = new Vector3f(0.25f, 0.5f, 1); - vecCenterMiddleRight = new Vector3f(0.75f, 0.5f, 1); - - vecCenterMiddleBottom = new Vector3f(0.5f, 0.25f, 1); - vecCenterMiddleTop = new Vector3f(0.5f, 0.75f, 1); - } - case WEST -> { - vecBottomLeft = new Vector3f(0, 0, 0); - vecBottomRight = new Vector3f(0, 0, 1); - vecTopLeft = new Vector3f(0, 1, 0); - vecTopRight = new Vector3f(0, 1, 1); - vecCenterBottomLeft = new Vector3f(0, 0.25f, 0.25f); - vecCenterBottomRight = new Vector3f(0, 0.25f, 0.75f); - vecCenterTopLeft = new Vector3f(0, 0.75f, 0.25f); - vecCenterTopRight = new Vector3f(0, 0.75f, 0.75f); - vecCenterMiddleLeft = new Vector3f(0, 0.5f, 0.25f); - vecCenterMiddleRight = new Vector3f(0, 0.5f, 0.75f); - - vecCenterMiddleBottom = new Vector3f(0f, 0.25f, 0.5f); - vecCenterMiddleTop = new Vector3f(0f, 0.75f, 0.5f); - } - case EAST -> { - vecBottomLeft = new Vector3f(1, 0, 1); - vecBottomRight = new Vector3f(1, 0, 0); - vecTopLeft = new Vector3f(1, 1, 1); - vecTopRight = new Vector3f(1, 1, 0); - vecCenterBottomLeft = new Vector3f(1, 0.25f, 0.75f); - vecCenterBottomRight = new Vector3f(1, 0.25f, 0.25f); - vecCenterTopLeft = new Vector3f(1, 0.75f, 0.75f); - vecCenterTopRight = new Vector3f(1, 0.75f, 0.25f); - vecCenterMiddleLeft = new Vector3f(1, 0.5f, 0.75f); - vecCenterMiddleRight = new Vector3f(1, 0.5f, 0.25f); - - vecCenterMiddleBottom = new Vector3f(1, 0.25f, 0.5f); - vecCenterMiddleTop = new Vector3f(1, 0.75f, 0.5f); - } - } - //@formatter:on - - SlabType slabType = null; - VerticalType verticalType = null; - if (state != null) { - slabType = state.get(SlabBlock.TYPE); - verticalType = state.get(VERTICAL_TYPE); - } - - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBuffer(); - buffer.begin(VertexFormat.DrawMode.LINES, VertexFormats.LINES); - MatrixStack.Entry entry = matrixStack.peek(); - - // I have no idea why, but this code only works when - // in an if chain and not a switch statement - if (part == HitPart.CENTER) { - drawCenterLines(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, slabType, verticalType, side); - } - else if (part == HitPart.BOTTOM) { - drawTopBottomLines(entry, buffer, camDif, vecBottomLeft, vecBottomRight, vecCenterBottomLeft, vecCenterBottomRight, vecCenterMiddleBottom, slabType, verticalType, side); - } - else if (part == HitPart.TOP) { - drawTopBottomLines(entry, buffer, camDif, vecTopLeft, vecTopRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleTop, slabType, verticalType, side); - } - else if (part == HitPart.LEFT) { - drawLeftRightLines(entry, buffer, camDif, vecBottomLeft, vecTopLeft, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleLeft, slabType, verticalType, side); - } - else if (part == HitPart.RIGHT) { - drawLeftRightLines(entry, buffer, camDif, vecBottomRight, vecTopRight, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleRight, slabType, verticalType, side); - } - tessellator.draw(); - } - - private static void drawLeftRightLines(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleCorner, SlabType slabType, VerticalType verticalType, Direction side) { - if (verticalType != null && slabType != null) { - switch (verticalType) { - case FALSE -> { - switch (slabType) { - case BOTTOM, TOP -> { - if (side == Direction.DOWN || side == Direction.UP) { - drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } else { - drawInternal(entry, buffer, camDif, vecEndCorner, vecStartCorner, vecCenterEndCorner, vecCenterStartCorner, vecCenterMiddleCorner, slabType); - } - } - case DOUBLE -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - case NORTH_SOUTH -> { - switch (slabType) { - case BOTTOM, TOP -> { - if (side == Direction.DOWN || side == Direction.UP) { - drawInternal(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, vecCenterMiddleCorner, slabType); - } else { - drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - case DOUBLE -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - case EAST_WEST -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } else { - drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - - private static void drawCenterLines(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecCenterBottomLeft, Vector3f vecCenterBottomRight, Vector3f vecCenterTopLeft, Vector3f vecCenterTopRight, Vector3f vecCenterMiddleLeft, Vector3f vecCenterMiddleRight, Vector3f vecCenterMiddleBottom, Vector3f vecCenterMiddleTop, SlabType slabType, VerticalType verticalType, Direction side) { - if (verticalType != null && slabType != null) { - switch (verticalType) { - case FALSE -> { - switch (slabType) { - case BOTTOM, TOP -> { - if (side == Direction.DOWN || side == Direction.UP) { - drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - } else { - drawInternalSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, slabType); - } - } - case DOUBLE -> drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - } - } - case NORTH_SOUTH -> { - switch (slabType) { - case BOTTOM, TOP -> { - switch (side) { - case DOWN, UP -> drawInternalSquare(entry, buffer, camDif, vecCenterTopLeft, vecCenterTopRight, vecCenterBottomLeft, vecCenterBottomRight, vecCenterMiddleLeft, vecCenterMiddleRight, slabType); - case NORTH, SOUTH -> drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - case EAST -> drawInternalSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterTopLeft, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleBottom, vecCenterMiddleTop, slabType); - case WEST -> drawInternalSquare(entry, buffer, camDif, vecCenterBottomRight, vecCenterTopRight, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleBottom, vecCenterMiddleTop, slabType); - } - } - case DOUBLE -> drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - } - } - case EAST_WEST -> { - switch (slabType) { - case BOTTOM, TOP -> { - switch (side) { - case EAST, WEST -> drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - case SOUTH, DOWN -> drawInternalSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterTopLeft, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleBottom, vecCenterMiddleTop, slabType); - case NORTH, UP -> drawInternalSquare(entry, buffer, camDif, vecCenterBottomRight, vecCenterTopRight, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleBottom, vecCenterMiddleTop, slabType); - } - } - case DOUBLE -> drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - } - } - } - } else { - drawDefaultSquare(entry, buffer, camDif, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight); - } - } - - private static void drawTopBottomLines(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleCorner, SlabType slabType, VerticalType verticalType, Direction side) { - if (verticalType != null && slabType != null) { - switch (verticalType) { - case FALSE -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - case NORTH_SOUTH -> { - switch (slabType) { - case BOTTOM, TOP -> { - switch (side) { - case DOWN, UP, NORTH, SOUTH -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - case EAST -> drawInternal(entry, buffer, camDif, vecEndCorner, vecStartCorner, vecCenterEndCorner, vecCenterStartCorner, vecCenterMiddleCorner, slabType); - case WEST -> drawInternal(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, vecCenterMiddleCorner, slabType); - } - } - case DOUBLE -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - case EAST_WEST -> { - switch (slabType) { - case BOTTOM, TOP -> { - switch (side) { - case EAST, WEST -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - case NORTH, UP -> drawInternal(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, vecCenterMiddleCorner, slabType); - case SOUTH, DOWN -> drawInternal(entry, buffer, camDif, vecEndCorner, vecStartCorner, vecCenterEndCorner, vecCenterStartCorner, vecCenterMiddleCorner, slabType); - } - } - case DOUBLE -> drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - } - } else { - drawDefaultLines(entry, buffer, camDif, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner); - } - } - - private static void drawInternalSquare(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleStart, Vector3f vecCenterMiddleEnd, SlabType slabType) { - if (Objects.equals(slabType, SlabType.TOP)) { - drawLine(entry, buffer, camDif, vecCenterMiddleStart, vecCenterStartCorner); - drawLine(entry, buffer, camDif, vecCenterStartCorner, vecCenterEndCorner); - drawLine(entry, buffer, camDif, vecCenterEndCorner, vecCenterMiddleEnd); - } else if (Objects.equals(slabType, SlabType.BOTTOM)) { - drawLine(entry, buffer, camDif, vecStartCorner, vecCenterMiddleStart); - drawLine(entry, buffer, camDif, vecStartCorner, vecEndCorner); - drawLine(entry, buffer, camDif, vecEndCorner, vecCenterMiddleEnd); - } - } - - private static void drawInternal(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleCorner, SlabType slabType) { - if (Objects.equals(slabType, SlabType.BOTTOM)) { - drawLine(entry, buffer, camDif, vecEndCorner, vecCenterEndCorner); - drawLine(entry, buffer, camDif, vecCenterEndCorner, vecCenterMiddleCorner); - } else if (Objects.equals(slabType, SlabType.TOP)) { - drawLine(entry, buffer, camDif, vecStartCorner, vecCenterStartCorner); - drawLine(entry, buffer, camDif, vecCenterStartCorner, vecCenterMiddleCorner); - } - } - - private static void drawDefaultLines(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner) { - drawLine(entry, buffer, camDif, vecStartCorner, vecCenterStartCorner); - drawLine(entry, buffer, camDif, vecEndCorner, vecCenterEndCorner); - drawLine(entry, buffer, camDif, vecCenterStartCorner, vecCenterEndCorner); - } - - private static void drawDefaultSquare(MatrixStack.Entry entry, BufferBuilder buffer, Vec3d camDif, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner) { - drawLine(entry, buffer, camDif, vecStartCorner, vecEndCorner); - drawLine(entry, buffer, camDif, vecStartCorner, vecCenterStartCorner); - drawLine(entry, buffer, camDif, vecEndCorner, vecCenterEndCorner); - drawLine(entry, buffer, camDif, vecCenterStartCorner, vecCenterEndCorner); - } - - public static HitPart getHitPart(BlockHitResult hit) { - Optional hitPos = getHitPos(hit); - if (hitPos.isEmpty()) return null; - - Vec2f hPos = hitPos.get(); - - double x = hPos.x; - double y = hPos.y; - - double offH = Math.abs(x - 0.5d); - double offV = Math.abs(y - 0.5d); - - if (offH > 0.25d || offV > 0.25d) { - if (offH > offV) { - return x < 0.5d ? HitPart.LEFT : HitPart.RIGHT; - } else { - return y < 0.5d ? HitPart.BOTTOM : HitPart.TOP; - } - } else { - return HitPart.CENTER; - } - } - - private static Optional getHitPos(BlockHitResult hit) { - Direction direction = hit.getSide(); - BlockPos blockPos = hit.getBlockPos().offset(direction); - Vec3d vec3d = hit.getPos().subtract(blockPos.getX(), blockPos.getY(), blockPos.getZ()); - double x = vec3d.getX(); - double y = vec3d.getY(); - double z = vec3d.getZ(); - return switch (direction) { - case NORTH -> Optional.of(new Vec2f((float) (1.0 - x), (float) y)); - case SOUTH -> Optional.of(new Vec2f((float) x, (float) y)); - case WEST -> Optional.of(new Vec2f((float) z, (float) y)); - case EAST -> Optional.of(new Vec2f((float) (1.0 - z), (float) y)); - case DOWN -> Optional.of(new Vec2f((float) x, (float) z)); - case UP -> Optional.of(new Vec2f((float) (1.0 - x), (float) z)); - }; - } - - /** - * Gets the camera offset from a position - * - * @param camera Camera position - * @param pos Position to get difference - * @return Difference - */ - public static Vec3d getCameraOffset(Vec3d camera, BlockPos pos, Direction side) { - BlockState state = MinecraftClient.getInstance().world.getBlockState(pos); - double xDif = (double) pos.getX() - camera.x; - double yDif = (double) pos.getY() - camera.y; - double zDif = (double) pos.getZ() - camera.z; - if (state.getBlock() instanceof SlabBlock) { - SlabType slabType = state.get(SlabBlock.TYPE); - VerticalType verticalType = state.get(VERTICAL_TYPE); - switch (side) { - case UP -> { - if ((slabType == SlabType.BOTTOM) && (verticalType == VerticalType.FALSE)) { - yDif -= 0.5d; - } - } - case DOWN -> { - if ((slabType == SlabType.TOP) && (verticalType == VerticalType.FALSE)) { - yDif += 0.5d; - } - } - case NORTH -> { - if ((verticalType == VerticalType.NORTH_SOUTH) && (slabType == SlabType.BOTTOM)) { - zDif += 0.5d; - } - } - case SOUTH -> { - if ((verticalType == VerticalType.NORTH_SOUTH) && (slabType == SlabType.TOP)) { - zDif -= 0.5d; - } - } - case WEST -> { - if ((verticalType == VerticalType.EAST_WEST) && (slabType == SlabType.TOP)) { - xDif += 0.5d; - } - } - case EAST -> { - if ((verticalType == VerticalType.EAST_WEST) && (slabType == SlabType.BOTTOM)) { - xDif -= 0.5d; - } - } - } - } - return new Vec3d(xDif, yDif, zDif); - } - - - public static void drawQuad(Vector3f pos1, Vector3f pos2, Vector3f pos3, Vector3f pos4, Vec3d camDif, MatrixStack matrixStack) { -/* - Vector3f pos1Raw = new Vector3f((float) (pos1.x + camDif.x), (float) (pos1.y + camDif.y), (float) (pos1.z + camDif.z)); - Vector3f pos2Raw = new Vector3f((float) (pos2.x + camDif.x), (float) (pos2.y + camDif.y), (float) (pos2.z + camDif.z)); - Vector3f pos3Raw = new Vector3f((float) (pos3.x + camDif.x), (float) (pos3.y + camDif.y), (float) (pos3.z + camDif.z)); - Vector3f pos4Raw = new Vector3f((float) (pos4.x + camDif.x), (float) (pos4.y + camDif.y), (float) (pos4.z + camDif.z)); - - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBuffer(); - - Matrix4f position = matrixStack.peek().getPositionMatrix(); - - buffer.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_COLOR); - - buffer.vertex(position, pos1Raw.x, pos1Raw.y, pos1Raw.z).color(0f, 0f, 0f, 0.15f).next(); - buffer.vertex(position, pos2Raw.x, pos2Raw.y, pos2Raw.z).color(0f, 0f, 0f, 0.15f).next(); - buffer.vertex(position, pos3Raw.x, pos3Raw.y, pos3Raw.z).color(0f, 0f, 0f, 0.15f).next(); - buffer.vertex(position, pos4Raw.x, pos4Raw.y, pos4Raw.z).color(0f, 0f, 0f, 0.15f).next(); - - tessellator.draw(); - */ - } - - public enum HitPart { - CENTER, - LEFT, - RIGHT, - BOTTOM, - TOP - } -} - diff --git a/src/main/java/io/github/andrew6rant/autoslabs/SlabLockEnum.java b/src/main/java/io/github/andrew6rant/autoslabs/SlabLockEnum.java new file mode 100644 index 0000000..a52bbfa --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/SlabLockEnum.java @@ -0,0 +1,30 @@ +package io.github.andrew6rant.autoslabs; + +public enum SlabLockEnum { + DEFAULT_AUTOSLABS, + BOTTOM_SLAB, + TOP_SLAB, + NORTH_SLAB_VERTICAL, + SOUTH_SLAB_VERTICAL, + EAST_SLAB_VERTICAL, + WEST_SLAB_VERTICAL, + VANILLA_PLACEMENT; + + public static final SlabLockEnum[] POSITION_VALUES = values(); + + public SlabLockEnum loopForward() { + return POSITION_VALUES[(ordinal() + 1) % POSITION_VALUES.length]; + } + + public SlabLockEnum loopBackward() { + return POSITION_VALUES[(ordinal() - 1 + POSITION_VALUES.length) % POSITION_VALUES.length]; + } + + public SlabLockEnum loop(boolean sneaking) { + if (sneaking) { + return loopBackward(); + } else { + return loopForward(); + } + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/SlabLockPayload.java b/src/main/java/io/github/andrew6rant/autoslabs/SlabLockPayload.java new file mode 100644 index 0000000..b5d18aa --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/SlabLockPayload.java @@ -0,0 +1,18 @@ +package io.github.andrew6rant.autoslabs; + +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; +import net.minecraft.network.packet.CustomPayload; +import net.minecraft.util.Identifier; + +public record SlabLockPayload(int slabLock) implements CustomPayload { + public static final Identifier SLAB = Identifier.of("autoslabs", "slab_lock"); + public static final CustomPayload.Id ID = new CustomPayload.Id<>(SLAB); + public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, SlabLockPayload::slabLock, SlabLockPayload::new); + + @Override + public Id getId() { + return ID; + } +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/SlabModelGenerator.java b/src/main/java/io/github/andrew6rant/autoslabs/SlabModelGenerator.java deleted file mode 100644 index 8767146..0000000 --- a/src/main/java/io/github/andrew6rant/autoslabs/SlabModelGenerator.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.github.andrew6rant.autoslabs; - -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; -import net.minecraft.block.Blocks; -import net.minecraft.data.client.*; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.util.math.Direction; - -public class SlabModelGenerator extends FabricModelProvider { - public SlabModelGenerator(FabricDataOutput output) { - super(output); - } - - @Override - public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) { - //blockStateModelGenerator.blockStateCollector.accept(MultipartBlockStateSupplier.create(Blocks.OAK_SLAB) - // .with(When.create().set(EnumProperty.of("vertical_type", VerticalType.class), VerticalType.NORTH_SOUTH), - // BlockStateVariant.create().put(VariantSettings.Y, VariantSettings.Rotation.R90))); - } - - @Override - public void generateItemModels(ItemModelGenerator itemModelGenerator) { - - } -} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/VerticalType.java b/src/main/java/io/github/andrew6rant/autoslabs/VerticalType.java index 37d11cd..7074428 100644 --- a/src/main/java/io/github/andrew6rant/autoslabs/VerticalType.java +++ b/src/main/java/io/github/andrew6rant/autoslabs/VerticalType.java @@ -9,7 +9,7 @@ public enum VerticalType implements StringIdentifiable { private final String name; - private VerticalType(String name) { + VerticalType(String name) { this.name = name; } diff --git a/src/main/java/io/github/andrew6rant/autoslabs/config/CommonConfig.java b/src/main/java/io/github/andrew6rant/autoslabs/config/CommonConfig.java new file mode 100644 index 0000000..0557a27 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/config/CommonConfig.java @@ -0,0 +1,15 @@ +package io.github.andrew6rant.autoslabs.config; + +import eu.midnightdust.lib.config.MidnightConfig; + +public class CommonConfig extends MidnightConfig { + @Entry public static boolean enableSlabLock = true; + @Entry public static ShowCrosshairIcon showCrosshairIcon = ShowCrosshairIcon.ON_CHANGE; + public enum ShowCrosshairIcon { + ALWAYS, + ON_CHANGE, + NEVER + } + @Entry public static boolean showEnhancedSlabLines = true; + @Entry public static boolean dumpResources = false; +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/config/ConfigEntrypoint.java b/src/main/java/io/github/andrew6rant/autoslabs/config/ConfigEntrypoint.java new file mode 100644 index 0000000..eefed91 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/config/ConfigEntrypoint.java @@ -0,0 +1,13 @@ +package io.github.andrew6rant.autoslabs.config; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; + +public class ConfigEntrypoint implements ModMenuApi { + + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return parent -> CommonConfig.getScreen(parent,"auto_slabs"); + } + +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/BlockRenderManagerMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/BlockRenderManagerMixin.java new file mode 100644 index 0000000..044c8ca --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/BlockRenderManagerMixin.java @@ -0,0 +1,59 @@ +package io.github.andrew6rant.autoslabs.mixin; + +import io.github.andrew6rant.autoslabs.util.PlacementUtil; +import io.github.andrew6rant.autoslabs.VerticalType; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.block.enums.SlabType; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.render.OverlayTexture; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.block.BlockModelRenderer; +import net.minecraft.client.render.block.BlockModels; +import net.minecraft.client.render.block.BlockRenderManager; +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.BlockRenderView; +import org.spongepowered.asm.mixin.Final; +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 static io.github.andrew6rant.autoslabs.util.Util.VERTICAL_TYPE; +import static net.minecraft.block.SlabBlock.TYPE; + +@Mixin(BlockRenderManager.class) +public class BlockRenderManagerMixin { + + @Shadow @Final private BlockModels models; + + @Shadow @Final private BlockModelRenderer blockModelRenderer; + + @Shadow @Final private Random random; + + @Inject(method = "renderDamage", at = @At("HEAD"), cancellable = true) + public void autoslabs$renderSlabDamage(BlockState state, BlockPos pos, BlockRenderView world, MatrixStack matrices, VertexConsumer vertexConsumer, CallbackInfo ci) { + if(!(state.getBlock() instanceof SlabBlock)) return; + if (state.getRenderType() == BlockRenderType.MODEL) { + if (state.get(TYPE) != SlabType.DOUBLE) return; + VerticalType verticalType = state.get(VERTICAL_TYPE); + if (verticalType == null) return; + ClientPlayerEntity clientPlayer = MinecraftClient.getInstance().player; + if (clientPlayer == null) return; + if (clientPlayer.isSneaking()) return; + + BlockHitResult cast = PlacementUtil.calcRaycast(clientPlayer); + BakedModel bakedModel = this.models.getModel(PlacementUtil.getModelState(state, verticalType, cast.getSide(), cast)); + long l = state.getRenderingSeed(pos); + this.blockModelRenderer.render(world, bakedModel, state, pos, matrices, vertexConsumer, true, this.random, l, OverlayTexture.DEFAULT_UV); + ci.cancel(); + } + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/ClientPlayerInteractionManagerMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/ClientPlayerInteractionManagerMixin.java new file mode 100644 index 0000000..059b567 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/ClientPlayerInteractionManagerMixin.java @@ -0,0 +1,39 @@ +package io.github.andrew6rant.autoslabs.mixin; + +import io.github.andrew6rant.autoslabs.util.PlacementUtil; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.block.enums.SlabType; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.network.ClientPlayerInteractionManager; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Final; +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.Redirect; + +// Massive thanks to Oliver-makes-code for some of the code behind this mixin +// https://github.com/Oliver-makes-code/autoslab/blob/1.19/src/main/java/olivermakesco/de/autoslab/mixin/Mixin_ClientPlayerInteractionManager.java +@Mixin(ClientPlayerInteractionManager.class) +public class ClientPlayerInteractionManagerMixin { + @Shadow @Final private MinecraftClient client; + + @Redirect(method = "breakBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;I)Z")) + private boolean autoslabs$tryBreakSlab(World instance, BlockPos pos, BlockState state, int flags) { + var breakState = instance.getBlockState(pos); + if (breakState.getBlock() instanceof SlabBlock) { + SlabType slabType = breakState.get(SlabBlock.TYPE); + if (slabType != SlabType.DOUBLE) return instance.setBlockState(pos, state, flags); + ClientPlayerEntity clientPlayer = client.player; + assert clientPlayer != null; + if (clientPlayer.isSneaking()) return instance.setBlockState(pos, state, flags); + + SlabType breakType = PlacementUtil.calcKleeSlab(breakState, PlacementUtil.calcRaycast(clientPlayer)); + return instance.setBlockState(pos, breakState.with(SlabBlock.TYPE, breakType), flags); + } + return instance.setBlockState(pos, state, flags); + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/FileResourcePackProviderMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/FileResourcePackProviderMixin.java deleted file mode 100644 index 613b345..0000000 --- a/src/main/java/io/github/andrew6rant/autoslabs/mixin/FileResourcePackProviderMixin.java +++ /dev/null @@ -1,59 +0,0 @@ -package io.github.andrew6rant.autoslabs.mixin; - -import net.devtech.arrp.ARRP; -import net.devtech.arrp.api.RRPCallback; -import net.minecraft.resource.*; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.spongepowered.asm.mixin.Final; -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 java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.function.Consumer; -import java.util.function.UnaryOperator; - -// This mixin is based off of ARRP's FileResourcePackProviderMixin, -// I just need to modify it slightly to automatically enable my BEFORE_USER resource pack -@Mixin(FileResourcePackProvider.class) -public class FileResourcePackProviderMixin { - @Shadow @Final private ResourceType type; - private static final ResourcePackSource RUNTIME = ResourcePackSource.create(getSourceTextSupplier(), true); - private static final Logger ARRP_LOGGER = LogManager.getLogger("AutoSlabs/FileResourcePackProviderMixin"); - - private static UnaryOperator getSourceTextSupplier() { - Text text = Text.translatable("pack.source.runtime"); - return name -> Text.translatable("pack.nameAndSource", name, text).formatted(Formatting.GRAY); - } - - @Inject(method = "register", at = @At("HEAD")) - public void register( - Consumer adder, - CallbackInfo ci - ) throws ExecutionException, InterruptedException { - List list = new ArrayList<>(); - ARRP.waitForPregen(); - ARRP_LOGGER.info("AUTOSLABS-MODIFIED: ARRP register - before user"); - RRPCallback.BEFORE_USER.invoker().insert(list); - for (ResourcePack pack : list) { - if(pack.getName().equals("Runtime Resource Packautoslabs:resources")) { // only do this on my resource pack - ARRP_LOGGER.info("AUTOSLABS-MODIFIED: Found autoslabs resource pack, adding to resource pack list"); - adder.accept(ResourcePackProfile.create( - pack.getName(), - Text.literal(pack.getName()), - true, // this is the difference from ARRP's mixin (I want my pack to be enabled by default) - (name) -> pack, - this.type, - ResourcePackProfile.InsertionPosition.TOP, - RUNTIME - )); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/PaneBlockMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/PaneBlockMixin.java new file mode 100644 index 0000000..0b35e33 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/PaneBlockMixin.java @@ -0,0 +1,69 @@ +package io.github.andrew6rant.autoslabs.mixin; + +import io.github.andrew6rant.autoslabs.util.PlacementUtil; +import net.minecraft.block.BlockState; +import net.minecraft.block.PaneBlock; +import net.minecraft.block.SlabBlock; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.BlockView; +import net.minecraft.world.WorldAccess; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +import static net.minecraft.block.HorizontalConnectingBlock.NORTH; +import static net.minecraft.block.HorizontalConnectingBlock.SOUTH; +import static net.minecraft.block.HorizontalConnectingBlock.WEST; +import static net.minecraft.block.HorizontalConnectingBlock.EAST; +import static net.minecraft.block.HorizontalConnectingBlock.WATERLOGGED; + +@Mixin(PaneBlock.class) +public class PaneBlockMixin { + + @Inject(method = "getStateForNeighborUpdate(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/Direction;Lnet/minecraft/block/BlockState;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;", + at = @At(value = "HEAD"), cancellable = true) + public final void autoslabs$neighborConnectsToVerticalSlab(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos, CallbackInfoReturnable cir) { + if (direction.getAxis().isHorizontal()) { + if (state.get(WATERLOGGED)) { + world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + } + // Use the correct property for each direction + if (direction == Direction.NORTH) { + cir.setReturnValue(state.with(NORTH, PlacementUtil.calcPaneCanConnectToVerticalSlab(direction, neighborState, neighborState.isSideSolidFullSquare(world, pos, direction.getOpposite())))); + } else if (direction == Direction.SOUTH) { + cir.setReturnValue(state.with(SOUTH, PlacementUtil.calcPaneCanConnectToVerticalSlab(direction, neighborState, neighborState.isSideSolidFullSquare(world, pos, direction.getOpposite())))); + } else if (direction == Direction.WEST) { + cir.setReturnValue(state.with(WEST, PlacementUtil.calcPaneCanConnectToVerticalSlab(direction, neighborState, neighborState.isSideSolidFullSquare(world, pos, direction.getOpposite())))); + } else if (direction == Direction.EAST) { + cir.setReturnValue(state.with(EAST, PlacementUtil.calcPaneCanConnectToVerticalSlab(direction, neighborState, neighborState.isSideSolidFullSquare(world, pos, direction.getOpposite())))); + } + } + } + + @Inject(method = "getPlacementState(Lnet/minecraft/item/ItemPlacementContext;)Lnet/minecraft/block/BlockState;", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/world/BlockView;getBlockState(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;", + ordinal = 3, + shift = At.Shift.AFTER), + locals = LocalCapture.CAPTURE_FAILHARD, + cancellable = true) + public final void autoslabs$placementConnectsToVerticalSlab(ItemPlacementContext ctx, CallbackInfoReturnable cir, BlockView blockView, BlockPos panePos, FluidState paneFluid, + BlockPos northPos, BlockPos southPos, BlockPos westPos, BlockPos eastPos, BlockState northState, BlockState southState, BlockState westState) { + + BlockState eastState = blockView.getBlockState(eastPos); + if (northState.getBlock() instanceof SlabBlock || southState.getBlock() instanceof SlabBlock || westState.getBlock() instanceof SlabBlock || eastState.getBlock() instanceof SlabBlock) { + cir.setReturnValue(((PaneBlock)(Object)this).getDefaultState() + .with(NORTH, PlacementUtil.calcPaneCanConnectToVerticalSlab(Direction.NORTH, northState, northState.isSideSolidFullSquare(blockView, northPos, Direction.SOUTH))) + .with(SOUTH, PlacementUtil.calcPaneCanConnectToVerticalSlab(Direction.SOUTH, southState, southState.isSideSolidFullSquare(blockView, southPos, Direction.NORTH))) + .with(WEST, PlacementUtil.calcPaneCanConnectToVerticalSlab(Direction.WEST, westState, westState.isSideSolidFullSquare(blockView, westPos, Direction.EAST))) + .with(EAST, PlacementUtil.calcPaneCanConnectToVerticalSlab(Direction.EAST, eastState, eastState.isSideSolidFullSquare(blockView, eastPos, Direction.WEST))) + .with(WATERLOGGED, paneFluid.getFluid() == Fluids.WATER)); + } + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/ServerPlayerInteractionManagerMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/ServerPlayerInteractionManagerMixin.java new file mode 100644 index 0000000..5b72b78 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/ServerPlayerInteractionManagerMixin.java @@ -0,0 +1,42 @@ +package io.github.andrew6rant.autoslabs.mixin; + +import io.github.andrew6rant.autoslabs.util.PlacementUtil; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.block.enums.SlabType; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.network.ServerPlayerInteractionManager; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import org.spongepowered.asm.mixin.Final; +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.Redirect; + +// Massive thanks to Oliver-makes-code for some of the code behind this mixin +// https://github.com/Oliver-makes-code/autoslab/blob/1.19/src/main/java/olivermakesco/de/autoslab/mixin/Mixin_ServerPlayerInteractionManager.java +@Mixin(ServerPlayerInteractionManager.class) +public class ServerPlayerInteractionManagerMixin { + @Shadow @Final protected ServerPlayerEntity player; + + @Shadow protected ServerWorld world; + + @Redirect(method = "tryBreakBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ServerWorld;removeBlock(Lnet/minecraft/util/math/BlockPos;Z)Z")) + private boolean autoslabs$tryBreakSlab(ServerWorld instance, BlockPos pos, boolean b) { + BlockState breakState = instance.getBlockState(pos); + if (breakState.getBlock() instanceof SlabBlock) { + SlabType slabType = breakState.get(SlabBlock.TYPE); + if (slabType != SlabType.DOUBLE) return instance.removeBlock(pos, b); + ServerPlayerEntity serverPlayer = player; + assert serverPlayer != null; + if (serverPlayer.isSneaking()) return instance.removeBlock(pos, b); + + SlabType breakType = PlacementUtil.calcKleeSlab(breakState, PlacementUtil.calcRaycast(serverPlayer)); + boolean removed = instance.removeBlock(pos, b); + world.setBlockState(pos, breakState.with(SlabBlock.TYPE, breakType)); + return removed; + } + return instance.removeBlock(pos, b); + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/SlabBlockMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/SlabBlockMixin.java index 2d98fa0..d1fc98c 100644 --- a/src/main/java/io/github/andrew6rant/autoslabs/mixin/SlabBlockMixin.java +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/SlabBlockMixin.java @@ -1,67 +1,149 @@ package io.github.andrew6rant.autoslabs.mixin; -import io.github.andrew6rant.autoslabs.PlacementUtil; +import io.github.andrew6rant.autoslabs.AutoSlabs; +import io.github.andrew6rant.autoslabs.SlabLockEnum; import io.github.andrew6rant.autoslabs.VerticalType; +import io.github.andrew6rant.autoslabs.config.CommonConfig; +import io.github.andrew6rant.autoslabs.util.PlacementUtil; +import io.github.andrew6rant.autoslabs.util.Util; import net.minecraft.block.*; +import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.enums.SlabType; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; +import net.minecraft.item.ItemStack; +import net.minecraft.state.StateManager; +import net.minecraft.util.BlockMirror; +import net.minecraft.util.BlockRotation; +import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; -import org.spongepowered.asm.mixin.Final; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; 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 static io.github.andrew6rant.autoslabs.VerticalType.*; +import static io.github.andrew6rant.autoslabs.util.Util.TYPE; +import static io.github.andrew6rant.autoslabs.util.Util.VERTICAL_TYPE; +import static net.minecraft.block.enums.SlabType.BOTTOM; import static net.minecraft.block.enums.SlabType.TOP; @Mixin(SlabBlock.class) public class SlabBlockMixin extends Block implements Waterloggable { - @Shadow @Final public static BooleanProperty WATERLOGGED; - private static final EnumProperty VERTICAL_TYPE; - private static final EnumProperty TYPE; - private static final VoxelShape BOTTOM_SHAPE; - private static final VoxelShape TOP_SHAPE; - private static final VoxelShape VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE; - private static final VoxelShape VERTICAL_NORTH_SOUTH_TOP_SHAPE; - private static final VoxelShape VERTICAL_EAST_WEST_BOTTOM_SHAPE; - private static final VoxelShape VERTICAL_EAST_WEST_TOP_SHAPE; - private SlabBlockMixin(Settings settings) { super(settings); } - @Override - public BlockState getPlacementState(ItemPlacementContext ctx) { - return PlacementUtil.calcPlacementState(ctx, this.getDefaultState()); + @Inject(at = @At("HEAD"), method = "canReplace(Lnet/minecraft/block/BlockState;Lnet/minecraft/item/ItemPlacementContext;)Z", cancellable = true) + private void autoslabs$canSlabReplace(BlockState state, ItemPlacementContext ctx, CallbackInfoReturnable cir) { + if (ctx.getPlayer() == null) return; + if (CommonConfig.enableSlabLock && + !AutoSlabs.slabLockPosition.getOrDefault(ctx.getPlayer(), SlabLockEnum.DEFAULT_AUTOSLABS).equals(SlabLockEnum.VANILLA_PLACEMENT)) { + cir.setReturnValue(PlacementUtil.canReplace(state, ctx)); + } + } + + @Inject(at = @At("HEAD"), method = "getPlacementState(Lnet/minecraft/item/ItemPlacementContext;)Lnet/minecraft/block/BlockState;", cancellable = true) + private void autoslabs$getSlabPlacementState(ItemPlacementContext ctx, CallbackInfoReturnable cir) { + if (ctx.getPlayer() == null) return; + if (CommonConfig.enableSlabLock && + !AutoSlabs.slabLockPosition.getOrDefault(ctx.getPlayer(), SlabLockEnum.DEFAULT_AUTOSLABS).equals(SlabLockEnum.VANILLA_PLACEMENT)) { + // Return the calculated state for prediction (both client and server) + // The UseBlockCallback will handle actual placement + cir.setReturnValue(PlacementUtil.calcPlacementState(ctx, this.getDefaultState())); + } + } + + // Massive thanks to Oliver-makes-code for some of the code behind this mixin + // https://github.com/Oliver-makes-code/autoslab/blob/1.19/src/main/java/olivermakesco/de/autoslab/mixin/Mixin_SlabBlock.java + @Inject(at = @At("RETURN"), method = "getOutlineShape(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/ShapeContext;)Lnet/minecraft/util/shape/VoxelShape;",cancellable = true) + private void autoslabs$getBetterSlabOutline(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable cir) { + if (!(context instanceof EntityShapeContext entityContext)) return; + SlabType slabType = state.get(TYPE); + if (slabType != SlabType.DOUBLE) return; + VerticalType verticalType = state.get(VERTICAL_TYPE); + if (verticalType == null) return; + Entity entity = entityContext.getEntity(); + if (entity == null) return; + if (entity.isSneaking()) return; + + BlockHitResult cast = PlacementUtil.calcRaycast(entity); + Direction side = cast.getSide(); + cir.setReturnValue(PlacementUtil.getDynamicOutlineShape(verticalType, side, cast)); } @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return PlacementUtil.getOutlineShape(state); + } + + @Override + public void afterBreak(World world, PlayerEntity player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { + if (player.isSneaking()) { + //Should ensure that if the player mines a single slab, it drops the correct amount + super.afterBreak(world, player, pos, state.with(TYPE, state.get(SlabBlock.TYPE)), blockEntity, stack); + } else { + super.afterBreak(world, player, pos, state.with(TYPE, TOP), blockEntity, stack); + } + } + + @Inject(method = "appendProperties", at = @At("RETURN")) + private void autoslabs$addVerticalTypeProperty(StateManager.Builder builder, CallbackInfo ci) { + builder.add(Util.VERTICAL_TYPE); + } + + @Override + public BlockState rotate(BlockState state, BlockRotation rotation) { SlabType slabType = state.get(TYPE); + if (slabType == null) return super.rotate(state, rotation); + if (slabType == SlabType.DOUBLE) return state; + VerticalType verticalType = state.get(VERTICAL_TYPE); - if (slabType == SlabType.DOUBLE) { - return VoxelShapes.fullCube(); - } - return switch (verticalType) { - case FALSE -> slabType == TOP ? TOP_SHAPE : BOTTOM_SHAPE; - case NORTH_SOUTH -> slabType == TOP ? VERTICAL_NORTH_SOUTH_TOP_SHAPE : VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE; - case EAST_WEST -> slabType == TOP ? VERTICAL_EAST_WEST_TOP_SHAPE : VERTICAL_EAST_WEST_BOTTOM_SHAPE; + if (verticalType == null) return super.rotate(state, rotation); + if (verticalType == FALSE || rotation == BlockRotation.NONE) return state; + + return switch (rotation) { + case CLOCKWISE_90 -> state + .with(VERTICAL_TYPE, verticalType == NORTH_SOUTH ? EAST_WEST : NORTH_SOUTH) + .with(TYPE, verticalType == EAST_WEST ? (slabType == TOP ? BOTTOM : TOP) : slabType); + case CLOCKWISE_180 -> state + .with(TYPE, slabType == TOP ? BOTTOM : TOP); + case COUNTERCLOCKWISE_90 -> state + .with(VERTICAL_TYPE, verticalType == NORTH_SOUTH ? EAST_WEST : NORTH_SOUTH) + .with(TYPE, verticalType == NORTH_SOUTH ? (slabType == TOP ? BOTTOM : TOP) : slabType); + default -> state; + }; + } + + @Override + public BlockState mirror(BlockState state, BlockMirror mirror) { + SlabType slabType = state.get(TYPE); + if (slabType == null) return super.mirror(state, mirror); + if (slabType == SlabType.DOUBLE) return state; + + VerticalType verticalType = state.get(VERTICAL_TYPE); + if (verticalType == null) return super.mirror(state, mirror); + if (verticalType == FALSE || mirror == BlockMirror.NONE) return state; + + return switch (mirror) { + case LEFT_RIGHT -> switch (verticalType) { + case EAST_WEST -> state; + default -> state.with(TYPE, state.get(TYPE) == TOP ? BOTTOM : TOP); + }; + case FRONT_BACK -> switch (verticalType) { + case NORTH_SOUTH -> state; + default -> state.with(TYPE, state.get(TYPE) == TOP ? BOTTOM : TOP); + }; + default -> state; }; } - static { - VERTICAL_TYPE = EnumProperty.of("vertical_type", VerticalType.class); - TYPE = Properties.SLAB_TYPE; - BOTTOM_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 8.0, 16.0); - TOP_SHAPE = Block.createCuboidShape(0.0, 8.0, 0.0, 16.0, 16.0, 16.0); - VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE = Block.createCuboidShape(0.0, 0.0, 8.0, 16.0, 16.0, 16.0); - VERTICAL_NORTH_SOUTH_TOP_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 8.0); - VERTICAL_EAST_WEST_BOTTOM_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 8.0, 16.0, 16.0); - VERTICAL_EAST_WEST_TOP_SHAPE = Block.createCuboidShape(8.0, 0.0, 0.0, 16.0, 16.0, 16.0); - } } \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/StatementStateMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/StatementStateMixin.java new file mode 100644 index 0000000..1d997c8 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/StatementStateMixin.java @@ -0,0 +1,39 @@ +package io.github.andrew6rant.autoslabs.mixin; + +import io.github.andrew6rant.autoslabs.statement.StatementStateExtensions; +import net.minecraft.block.SlabBlock; +import net.minecraft.state.State; +import net.minecraft.state.property.Property; +import org.spongepowered.asm.mixin.Final; +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; + +@Mixin(State.class) +public class StatementStateMixin implements StatementStateExtensions { + @Shadow @Final protected O owner; + + @Inject(method = "get", cancellable = true, at = @At(value = "INVOKE", target = "Ljava/lang/IllegalArgumentException;(Ljava/lang/String;)V", shift = At.Shift.BEFORE)) + private > void statement$onGet(Property property, CallbackInfoReturnable info) { + // Only handle slab-related properties on slab blocks + if (this.owner instanceof SlabBlock && isSlabProperty(property)) { + // Provide fallback value for slab properties + info.setReturnValue(property.getValues().iterator().next()); + } + // For all other properties (including sculk_sensor_phase), let the exception be thrown + // This preserves the vanilla sculk sensor bug + } + + @Unique + private boolean isSlabProperty(Property property) { + return property.getName().equals("vertical_type") || property.getName().equals("type"); + } + + @Override + public void statement_initShapeCache() { + // No-op for our minimal implementation + } +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/mixin/WorldRendererMixin.java b/src/main/java/io/github/andrew6rant/autoslabs/mixin/WorldRendererMixin.java index 62c6d69..4bbb589 100644 --- a/src/main/java/io/github/andrew6rant/autoslabs/mixin/WorldRendererMixin.java +++ b/src/main/java/io/github/andrew6rant/autoslabs/mixin/WorldRendererMixin.java @@ -1,23 +1,50 @@ package io.github.andrew6rant.autoslabs.mixin; -import io.github.andrew6rant.autoslabs.RenderUtil; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.GameRenderer; -import net.minecraft.client.render.LightmapTextureManager; +import io.github.andrew6rant.autoslabs.SlabLockEnum; +import io.github.andrew6rant.autoslabs.util.RenderUtil; +import net.minecraft.block.BlockState; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.util.math.MatrixStack; -import org.joml.Matrix4f; +import net.minecraft.entity.Entity; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.shape.VoxelShape; +import org.spongepowered.asm.mixin.Final; 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.CallbackInfo; +import static io.github.andrew6rant.autoslabs.AutoSlabsClient.clientSlabLockPosition; +import static io.github.andrew6rant.autoslabs.config.CommonConfig.enableSlabLock; +import static io.github.andrew6rant.autoslabs.config.CommonConfig.showEnhancedSlabLines; + @Mixin(WorldRenderer.class) public class WorldRendererMixin { - @Inject(method = "render", at = @At("TAIL")) - private void drawBlockOutline(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f positionMatrix, CallbackInfo ci) { - RenderUtil.renderOverlay(matrices, camera); + @Shadow @Final private MinecraftClient client; + + @Unique private static HitResult autoslabs$captureCrosshairTarget; + @Unique private static BlockState autoslabs$captureBlockState; + + @Inject(method = "drawBlockOutline(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/entity/Entity;DDDLnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V", at = @At("HEAD")) + private void autoslabs$drawBlockOutline(MatrixStack matrices, VertexConsumer vertexConsumer, Entity entity, double cameraX, double cameraY, double cameraZ, BlockPos pos, BlockState state, CallbackInfo ci) { + autoslabs$captureCrosshairTarget = this.client.crosshairTarget; + autoslabs$captureBlockState = state; } + @Inject(method = "drawCuboidShapeOutline(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/util/shape/VoxelShape;DDDFFFF)V", at = @At("HEAD")) + private static void autoslabs$drawBlockOutline(MatrixStack matrices, VertexConsumer vertexConsumer, VoxelShape shape, double offsetX, double offsetY, double offsetZ, float red, float green, float blue, float alpha, CallbackInfo ci) { + if (!enableSlabLock || !showEnhancedSlabLines) return; + if (clientSlabLockPosition.equals(SlabLockEnum.VANILLA_PLACEMENT)) return; + Vec3d camDif = new Vec3d(offsetX, offsetY, offsetZ); + if (autoslabs$captureCrosshairTarget != null && autoslabs$captureBlockState != null) { + RenderUtil.renderOverlay(matrices, vertexConsumer, camDif, autoslabs$captureBlockState, shape, autoslabs$captureCrosshairTarget, red, green, blue, alpha); + } + } } diff --git a/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateExtensions.java b/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateExtensions.java new file mode 100644 index 0000000..e17501d --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateExtensions.java @@ -0,0 +1,7 @@ +package io.github.andrew6rant.autoslabs.statement; + +import net.minecraft.state.State; + +public interface StatementStateExtensions { + void statement_initShapeCache(); +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateManagerExtensions.java b/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateManagerExtensions.java new file mode 100644 index 0000000..a986196 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateManagerExtensions.java @@ -0,0 +1,13 @@ +package io.github.andrew6rant.autoslabs.statement; + +import net.minecraft.state.State; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.Property; + +import java.util.Collection; +import java.util.Map; + +public interface StatementStateManagerExtensions> { + boolean statement_addProperty(Property property, Object defaultValue); + Collection statement_reconstructStateList(Map, Collection> propertyValues); +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateRefresher.java b/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateRefresher.java new file mode 100644 index 0000000..4845fb9 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/statement/StatementStateRefresher.java @@ -0,0 +1,41 @@ +package io.github.andrew6rant.autoslabs.statement; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.state.State; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.Property; +import net.minecraft.util.collection.IdList; + +import java.util.Collection; +import java.util.Collections; +import java.util.function.Supplier; + +public class StatementStateRefresher { + public static final StatementStateRefresher INSTANCE = new StatementStateRefresher(); + + public > Collection addBlockProperty(final Block owner, final Property property, final V defaultValue) { + return addProperty(owner::getStateManager, Block.STATE_IDS, property, defaultValue); + } + + public , V extends Comparable> Collection addProperty(final Supplier> stateManagerGetter, final IdList idList, final Property property, final V defaultValue) { + // Only handle slab-related properties + if (isSlabProperty(property)) { + // For our minimal implementation, we'll just return an empty collection + // The actual property handling is done by the StatementStateMixin + return Collections.emptyList(); + } + + return Collections.emptyList(); + } + + public void reorderBlockStates() { + // This is called to ensure proper state ordering + // For our minimal implementation, we don't need to do anything special + } + + private boolean isSlabProperty(Property property) { + // Only handle properties that are used by this mod + return property.getName().equals("vertical_type") || property.getName().equals("type"); + } +} \ No newline at end of file diff --git a/src/main/java/io/github/andrew6rant/autoslabs/util/ModelUtil.java b/src/main/java/io/github/andrew6rant/autoslabs/util/ModelUtil.java new file mode 100644 index 0000000..09e53cc --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/util/ModelUtil.java @@ -0,0 +1,75 @@ +package io.github.andrew6rant.autoslabs.util; + +import net.devtech.arrp.api.RuntimeResourcePack; +import net.devtech.arrp.json.blockstate.JState; +import net.devtech.arrp.json.blockstate.JVariant; +import net.devtech.arrp.json.models.JModel; +import net.minecraft.block.Block; +import net.minecraft.registry.Registries; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Direction; + +public class ModelUtil { + public static void setup(RuntimeResourcePack AUTO_SLABS_RESOURCES, Block block) { + Identifier id = Registries.BLOCK.getId(block); + String namespace = id.getNamespace(); + String path = id.getPath(); + Identifier vertical_north_south_top_slab = Identifier.of(namespace, "block/"+path + "_vertical_north_south_top"); + Identifier vertical_north_south_bottom_slab = Identifier.of(namespace, "block/"+path + "_vertical_north_south_bottom"); + Identifier vertical_east_west_top_slab = Identifier.of(namespace, "block/"+path + "_vertical_east_west_top"); + Identifier vertical_east_west_bottom_slab = Identifier.of(namespace, "block/"+path + "_vertical_east_west_bottom"); + + // Yes, I know these models are incredibly inefficient, but I need to parent them this way for the best mod compatibility. + JModel verticalSlabNorthSouthTopModel = JModel.model().parent(namespace+":block/"+path) + .element(JModel.element().from(0, 0, 0).to(16, 16, 8) + .faces(JModel.faces() + .north(JModel.face("side").cullface(Direction.NORTH).uv(0, 0, 16, 16)) + .east(JModel.face("side").cullface(Direction.EAST).uv(8, 0, 16, 16)) + .south(JModel.face("side").uv(0, 0, 16, 16)) + .west(JModel.face("side").cullface(Direction.WEST).uv(0, 0, 8, 16)) + .up(JModel.face("top").cullface(Direction.UP).uv(0, 0, 16, 8)) + .down(JModel.face("bottom").cullface(Direction.DOWN).uv(0, 0, 16, 8)))); + + JModel verticalSlabNorthSouthBottomModel = JModel.model().parent(namespace+":block/"+path) + .element(JModel.element().from(0, 0, 8).to(16, 16, 16) + .faces(JModel.faces() + .north(JModel.face("side").uv(0, 0, 16, 16)) + .east(JModel.face("side").cullface(Direction.EAST).uv(0, 0, 8, 16)) + .south(JModel.face("side").cullface(Direction.SOUTH).uv(0, 0, 16, 16)) + .west(JModel.face("side").cullface(Direction.WEST).uv(8, 0, 16, 16)) + .up(JModel.face("top").cullface(Direction.UP).uv(0, 8, 16, 16)) + .down(JModel.face("bottom").cullface(Direction.DOWN).uv(0, 0, 16, 8)))); + + JModel verticalSlabEastWestTopModel = JModel.model().parent(namespace+":block/"+path) + .element(JModel.element().from(8, 0, 0).to(16, 16, 16) + .faces(JModel.faces() + .north(JModel.face("side").cullface(Direction.NORTH).uv(0, 0, 8, 16)) + .east(JModel.face("side").cullface(Direction.EAST).uv(0, 0, 16, 16)) + .south(JModel.face("side").cullface(Direction.SOUTH).uv(8, 0, 16, 16)) + .west(JModel.face("side").uv(0, 0, 16, 16)) + .up(JModel.face("top").cullface(Direction.UP).uv(8, 0, 16, 16)) + .down(JModel.face("bottom").cullface(Direction.DOWN).uv(8, 0, 16, 16)))); + + JModel verticalSlabEastWestBottomModel = JModel.model().parent(namespace+":block/"+path) + .element(JModel.element().from(0, 0, 0).to(8, 16, 16) + .faces(JModel.faces() + .north(JModel.face("side").cullface(Direction.NORTH).uv(8, 0, 16, 16)) + .east(JModel.face("side").uv(0, 0, 16, 16)) + .south(JModel.face("side").cullface(Direction.SOUTH).uv(0, 0, 8, 16)) + .west(JModel.face("side").cullface(Direction.WEST).uv(0, 0, 16, 16)) + .up(JModel.face("top").cullface(Direction.UP).uv(0, 0, 8, 16)) + .down(JModel.face("bottom").cullface(Direction.DOWN).uv(0, 0, 8, 16)))); + + AUTO_SLABS_RESOURCES.addModel(verticalSlabNorthSouthTopModel, vertical_north_south_top_slab); + AUTO_SLABS_RESOURCES.addModel(verticalSlabNorthSouthBottomModel, vertical_north_south_bottom_slab); + AUTO_SLABS_RESOURCES.addModel(verticalSlabEastWestTopModel, vertical_east_west_top_slab); + AUTO_SLABS_RESOURCES.addModel(verticalSlabEastWestBottomModel, vertical_east_west_bottom_slab); + + AUTO_SLABS_RESOURCES.addBlockState(JState.state(new JVariant() + .put("type=bottom,vertical_type=north_south", JState.model(vertical_north_south_bottom_slab)) + .put("type=bottom,vertical_type=east_west", JState.model(vertical_east_west_bottom_slab)) + .put("type=top,vertical_type=north_south", JState.model(vertical_north_south_top_slab)) + .put("type=top,vertical_type=east_west", JState.model(vertical_east_west_top_slab)) + ), id); + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/util/PlacementUtil.java b/src/main/java/io/github/andrew6rant/autoslabs/util/PlacementUtil.java new file mode 100644 index 0000000..682138a --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/util/PlacementUtil.java @@ -0,0 +1,443 @@ +package io.github.andrew6rant.autoslabs.util; + +import io.github.andrew6rant.autoslabs.AutoSlabs; +import io.github.andrew6rant.autoslabs.SlabLockEnum; +import io.github.andrew6rant.autoslabs.VerticalType; +import net.minecraft.block.BlockState; +import net.minecraft.block.PaneBlock; +import net.minecraft.block.SlabBlock; +import net.minecraft.block.enums.SlabType; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.RaycastContext; + +import static io.github.andrew6rant.autoslabs.VerticalType.EAST_WEST; +import static io.github.andrew6rant.autoslabs.VerticalType.NORTH_SOUTH; +import static io.github.andrew6rant.autoslabs.util.Util.*; +import static net.minecraft.block.PaneBlock.cannotConnect; +import static net.minecraft.block.SlabBlock.TYPE; +import static net.minecraft.block.SlabBlock.WATERLOGGED; +import static net.minecraft.block.enums.SlabType.TOP; + +public class PlacementUtil { + + public static boolean calcPaneCanConnectToVerticalSlab(Direction paneDirection, BlockState offsetState, boolean sideSolidFullSquare) { + if (sideSolidFullSquare && !cannotConnect(offsetState)) { + return true; + } + if (offsetState.getBlock() instanceof SlabBlock) { + switch (paneDirection) { + case NORTH, SOUTH -> { + return offsetState.get(VERTICAL_TYPE) == EAST_WEST; + } + case EAST, WEST -> { + return offsetState.get(VERTICAL_TYPE) == NORTH_SOUTH; + } + } + } + return offsetState.getBlock() instanceof PaneBlock || offsetState.isIn(BlockTags.WALLS); + } + + public static VoxelShape getDynamicOutlineShape(VerticalType verticalType, Direction side, BlockHitResult cast) { + return switch (verticalType) { + case FALSE -> { + switch (side) { + case UP -> { + yield TOP_SHAPE; + } + case DOWN -> { + yield BOTTOM_SHAPE; + } + default -> { + var yPos = cast.getPos().y; + var yOffset = ((yPos % 1) + 1) % 1; + if (yOffset > 0.5) yield TOP_SHAPE; + else yield BOTTOM_SHAPE; + } + } + } + case NORTH_SOUTH -> { + switch (side) { + case NORTH -> { + yield VERTICAL_NORTH_SOUTH_TOP_SHAPE; + } + case SOUTH -> { + yield VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE; + } + default -> { + var zPos = cast.getPos().z; + var zOffset = ((zPos % 1) + 1) % 1; + if (zOffset > 0.5) yield VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE; + else yield VERTICAL_NORTH_SOUTH_TOP_SHAPE; + } + } + } + case EAST_WEST -> { + switch (side) { + case EAST -> { + yield VERTICAL_EAST_WEST_TOP_SHAPE; + } + case WEST -> { + yield VERTICAL_EAST_WEST_BOTTOM_SHAPE; + } + default -> { + var xPos = cast.getPos().x; + var xOffset = ((xPos % 1) + 1) % 1; + if (xOffset > 0.5) yield VERTICAL_EAST_WEST_TOP_SHAPE; + else yield VERTICAL_EAST_WEST_BOTTOM_SHAPE; + } + } + } + }; + } + + public static VoxelShape getOutlineShape(BlockState state) { + SlabType slabType = state.get(Util.TYPE); + VerticalType verticalType = state.get(VERTICAL_TYPE); + if (slabType == SlabType.DOUBLE) { + return VoxelShapes.fullCube(); // double slab is actually calculated in SlabBlockMixin + } + return switch (verticalType) { + case FALSE -> slabType == TOP ? TOP_SHAPE : BOTTOM_SHAPE; + case NORTH_SOUTH -> slabType == TOP ? VERTICAL_NORTH_SOUTH_TOP_SHAPE : VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE; + case EAST_WEST -> slabType == TOP ? VERTICAL_EAST_WEST_TOP_SHAPE : VERTICAL_EAST_WEST_BOTTOM_SHAPE; + }; + } + + public static BlockState getModelState(BlockState state, VerticalType verticalType, Direction side, BlockHitResult cast) { + return switch (verticalType) { + case FALSE -> { + switch (side) { + // this code technically does not need the brackets or "yield," but IntelliJ won't compile it unless I have it + // https://youtrack.jetbrains.com/issue/IDEA-273889/Switch-expression-rule-should-produce-result-in-all-execution-paths-false-positive + case UP -> { + yield state.getBlock().getDefaultState().with(TYPE, SlabType.TOP); + } + case DOWN -> { + yield state.getBlock().getDefaultState().with(TYPE, SlabType.BOTTOM); + } + default -> { + var yPos = cast.getPos().y; + var yOffset = ((yPos % 1) + 1) % 1; + if (yOffset > 0.5) yield state.getBlock().getDefaultState().with(TYPE, SlabType.TOP); + else yield state.getBlock().getDefaultState().with(TYPE, SlabType.BOTTOM); + } + } + } + case NORTH_SOUTH -> { + switch (side) { + case NORTH -> { + yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, NORTH_SOUTH).with(TYPE, SlabType.TOP); + } + case SOUTH -> { + yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, NORTH_SOUTH).with(TYPE, SlabType.BOTTOM); + } + default -> { + var zPos = cast.getPos().z; + var zOffset = ((zPos % 1) + 1) % 1; + if (zOffset > 0.5) yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, NORTH_SOUTH).with(TYPE, SlabType.BOTTOM); + else yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, NORTH_SOUTH).with(TYPE, SlabType.TOP); + } + } + } + case EAST_WEST -> { + switch (side) { + case EAST -> { + yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(TYPE, SlabType.TOP); + } + case WEST -> { + yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(TYPE, SlabType.BOTTOM); + } + default -> { + var xPos = cast.getPos().x; + var xOffset = ((xPos % 1) + 1) % 1; + if (xOffset > 0.5) yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(TYPE, SlabType.TOP); + else yield state.getBlock().getDefaultState().with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(TYPE, SlabType.BOTTOM); + } + } + } + }; + } + + public static BlockHitResult calcRaycast(Entity entity) { + Vec3d vec3d = entity.getCameraPosVec(0); + Vec3d vec3d2 = entity.getRotationVec(0); + Vec3d vec3d3 = vec3d.add(vec3d2.x * 5d, vec3d2.y * 5d, vec3d2.z * 5d); + return entity.getWorld().raycast(new RaycastContext(vec3d, vec3d3, RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, entity)); + } + + public static SlabType calcKleeSlab(BlockState breakState, BlockHitResult cast) { + Direction side = cast.getSide(); + VerticalType verticalType = breakState.get(VERTICAL_TYPE); + SlabType breakType = SlabType.DOUBLE; + if (verticalType != null) { + switch (verticalType) { + case FALSE -> breakType = switch (side) { + case UP -> SlabType.BOTTOM; + case DOWN -> SlabType.TOP; + default -> { + var yPos = cast.getPos().y; + var yOffset = ((yPos % 1) + 1) % 1; + if (yOffset > 0.5) yield SlabType.BOTTOM; + else yield SlabType.TOP; + } + }; + case NORTH_SOUTH -> breakType = switch (side) { + case NORTH -> SlabType.BOTTOM; + case SOUTH -> SlabType.TOP; + default -> { + var zPos = cast.getPos().z; + var zOffset = ((zPos % 1) + 1) % 1; + if (zOffset > 0.5) yield SlabType.TOP; + else yield SlabType.BOTTOM; + } + }; + case EAST_WEST -> breakType = switch (side) { + case EAST -> SlabType.BOTTOM; + case WEST -> SlabType.TOP; + default -> { + var xPos = cast.getPos().x; + var xOffset = ((xPos % 1) + 1) % 1; + if (xOffset > 0.5) yield SlabType.BOTTOM; + else yield SlabType.TOP; + } + }; + } + } + return breakType; + } + + public static boolean canReplace(BlockState state, ItemPlacementContext context) { + PlayerEntity player = context.getPlayer(); + if (player == null) return false; + if (!AutoSlabs.slabLockPosition.getOrDefault(player, SlabLockEnum.DEFAULT_AUTOSLABS).equals(SlabLockEnum.DEFAULT_AUTOSLABS)) { + return false; + } + ItemStack itemStack = context.getStack(); + SlabType slabType = state.get(TYPE); + if (slabType != SlabType.DOUBLE && itemStack.isOf(state.getBlock().asItem())) { + if (context.canReplaceExisting()) { + BlockHitResult blockHitResult = PlacementUtil.calcRaycast(player); + HitPart part = getHitPart(blockHitResult); + boolean topHalfX = context.getHitPos().x - (double) context.getBlockPos().getX() > 0.5; + boolean topHalfY = context.getHitPos().y - (double) context.getBlockPos().getY() > 0.5; + boolean topHalfZ = context.getHitPos().z - (double) context.getBlockPos().getZ() > 0.5; + Direction direction = context.getSide(); + VerticalType verticalType = state.get(VERTICAL_TYPE); + if (verticalType != null) { + if (verticalType == VerticalType.FALSE) { + if (slabType == SlabType.BOTTOM) { + if (direction == Direction.UP || topHalfY && direction.getAxis().isHorizontal()) { + return part == HitPart.CENTER; + } + } else { + if (direction == Direction.DOWN || !topHalfY && direction.getAxis().isHorizontal()) { + return part == HitPart.CENTER; + } + } + } else if (verticalType == NORTH_SOUTH) { + if (slabType == SlabType.BOTTOM) { + if (direction == Direction.NORTH || !topHalfZ && direction.getAxis().isVertical()) { + return part == HitPart.CENTER; + } + } else { + if (direction == Direction.SOUTH || topHalfZ && direction.getAxis().isVertical()) { + return part == HitPart.CENTER; + } + } + } else if (verticalType == VerticalType.EAST_WEST) { + if (slabType == SlabType.BOTTOM) { + if (direction == Direction.EAST || topHalfX && direction.getAxis().isVertical()) { + return part == HitPart.CENTER; + } + } else { + if (direction == Direction.WEST || !topHalfX && direction.getAxis().isVertical()) { + return part == HitPart.CENTER; + } + } + } + } + } else { + return true; + } + } else { + return false; + } + return false; + } + + public static BlockState calcPlacementState(ItemPlacementContext ctx, BlockState state) { + PlayerEntity player = ctx.getPlayer(); + if (player == null) return null; + BlockPos blockPos = ctx.getBlockPos(); + FluidState fluidState = ctx.getWorld().getFluidState(blockPos); + + // Handle locked positions first + switch (AutoSlabs.slabLockPosition.getOrDefault(player, SlabLockEnum.DEFAULT_AUTOSLABS)) { + case BOTTOM_SLAB -> { + return state.with(TYPE, SlabType.BOTTOM).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + case TOP_SLAB -> { + return state.with(TYPE, SlabType.TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + case NORTH_SLAB_VERTICAL -> { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + case SOUTH_SLAB_VERTICAL -> { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + case EAST_SLAB_VERTICAL -> { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + case WEST_SLAB_VERTICAL -> { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + + // Handle dynamic placement based on hit position + BlockState blockState = ctx.getWorld().getBlockState(blockPos); + Direction ctxSide = ctx.getSide(); + BlockHitResult blockHitResult = PlacementUtil.calcRaycast(player); + HitPart part = getHitPart(blockHitResult); + + return switch (ctxSide) { + case UP -> calcUpPlacement(blockState, state, part, fluidState); + case DOWN -> calcDownPlacement(blockState, state, part, fluidState); + case NORTH -> calcNorthPlacement(blockState, state, part, fluidState); + case SOUTH -> calcSouthPlacement(blockState, state, part, fluidState); + case EAST -> calcEastPlacement(blockState, state, part, fluidState); + case WEST -> calcWestPlacement(blockState, state, part, fluidState); + }; + } + + public static BlockState calcUpPlacement(BlockState blockState, BlockState state, HitPart part, FluidState fluidState) { + if (part != null) { + if (blockState.isOf(state.getBlock())) { + return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); + } + if (part == HitPart.CENTER) { + return state.with(TYPE, SlabType.BOTTOM).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.BOTTOM) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.TOP) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.LEFT) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.RIGHT) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + return null; + } + + public static BlockState calcDownPlacement(BlockState blockState, BlockState state, HitPart part, FluidState fluidState) { + if (part != null) { + if (blockState.isOf(state.getBlock())) { + return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); + } + if (part == HitPart.CENTER) { + return state.with(TYPE, SlabType.TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.BOTTOM) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.TOP) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.LEFT) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.RIGHT) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + return null; + } + + public static BlockState calcNorthPlacement(BlockState blockState, BlockState state, HitPart part, FluidState fluidState) { + if (part != null) { + if (blockState.isOf(state.getBlock())) { + return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); + } + if (part == HitPart.CENTER) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.BOTTOM) { + return state.with(TYPE, SlabType.BOTTOM).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.TOP) { + return state.with(TYPE, SlabType.TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.LEFT) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.RIGHT) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + return null; + } + + public static BlockState calcSouthPlacement(BlockState blockState, BlockState state, HitPart part, FluidState fluidState) { + if (part != null) { + if (blockState.isOf(state.getBlock())) { + return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); + } + if (part == HitPart.CENTER) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.BOTTOM) { + return state.with(TYPE, SlabType.BOTTOM).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.TOP) { + return state.with(TYPE, SlabType.TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.LEFT) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.RIGHT) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + return null; + } + + public static BlockState calcEastPlacement(BlockState blockState, BlockState state, HitPart part, FluidState fluidState) { + if (part != null) { + if (blockState.isOf(state.getBlock())) { + return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); + } + if (part == HitPart.CENTER) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.BOTTOM) { + return state.with(TYPE, SlabType.BOTTOM).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.TOP) { + return state.with(TYPE, SlabType.TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.LEFT) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.RIGHT) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + return null; + } + + public static BlockState calcWestPlacement(BlockState blockState, BlockState state, HitPart part, FluidState fluidState) { + if (part != null) { + if (blockState.isOf(state.getBlock())) { + return blockState.with(TYPE, SlabType.DOUBLE).with(WATERLOGGED, false); + } + if (part == HitPart.CENTER) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, VerticalType.EAST_WEST).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.BOTTOM) { + return state.with(TYPE, SlabType.BOTTOM).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.TOP) { + return state.with(TYPE, SlabType.TOP).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.LEFT) { + return state.with(TYPE, SlabType.TOP).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } else if (part == HitPart.RIGHT) { + return state.with(TYPE, SlabType.BOTTOM).with(VERTICAL_TYPE, NORTH_SOUTH).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + } + } + return null; + } +} diff --git a/src/main/java/io/github/andrew6rant/autoslabs/util/RenderUtil.java b/src/main/java/io/github/andrew6rant/autoslabs/util/RenderUtil.java new file mode 100644 index 0000000..b7a0f52 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/util/RenderUtil.java @@ -0,0 +1,381 @@ +package io.github.andrew6rant.autoslabs.util; + +import io.github.andrew6rant.autoslabs.VerticalType; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.block.enums.SlabType; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.shape.VoxelShape; +import org.joml.Vector3f; + +import java.util.Objects; + +import static io.github.andrew6rant.autoslabs.AutoSlabsClient.clientSlabLockPosition; +import static io.github.andrew6rant.autoslabs.util.Util.*; + +// massive thanks to Schauweg for helping with some of this code +public class RenderUtil { + + public static void drawSlabIcon(DrawContext context, int u, int v) { + context.drawTexture(Identifier.of("autoslabs","textures/gui/autoslabs_position_lock.png"), (context.getScaledWindowWidth() - 15) / 2, (context.getScaledWindowHeight() - 42) / 2, u, v, 15, 15, 64, 64); + } + + public static void renderOverlay(MatrixStack matrices, VertexConsumer vertexConsumer, Vec3d camDif1, BlockState state, VoxelShape shape, HitResult hitResult, float red, float green, float blue, float alpha) { + ClientPlayerEntity player = MinecraftClient.getInstance().player; + if (Block.getBlockFromItem(player.getStackInHand(player.getActiveHand()).getItem()) instanceof SlabBlock || (Block.getBlockFromItem(player.getOffHandStack().getItem()) instanceof SlabBlock && player.getMainHandStack().isEmpty())) { + if (hitResult.getType() == HitResult.Type.BLOCK) { + + BlockHitResult result = (BlockHitResult) hitResult; + Util.HitPart part = getHitPart(result); + Vec3d camDif = getCameraOffset(camDif1, shape, result.getSide()); + + if (state.getBlock() instanceof SlabBlock) { + renderOverlayToDirection(state, result.getSide(), matrices, vertexConsumer, camDif, part, red, green, blue, alpha); + } else { + renderOverlayToDirection(null, result.getSide(), matrices, vertexConsumer, camDif, part, red, green, blue, alpha); + } + } + } + } + + private static void drawLine(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f start, Vector3f end, Vec3d camDif, float red, float green, float blue, float alpha) { + Vector3f normal = getNormalAngle(start, end); + + Vector3f startRaw = new Vector3f((float) (start.x + camDif.x), (float) (start.y + camDif.y), (float) (start.z + camDif.z)); + Vector3f endRaw = new Vector3f((float) (end.x + camDif.x), (float) (end.y + camDif.y), (float) (end.z + camDif.z)); + + vertexConsumer.vertex(entry.getPositionMatrix(), startRaw.x, startRaw.y, startRaw.z) + .color(red, green, blue, alpha).normal(normal.x, normal.y, normal.z); + + vertexConsumer.vertex(entry.getPositionMatrix(), endRaw.x, endRaw.y, endRaw.z) + .color(red, green, blue, alpha).normal(normal.x, normal.y, normal.z); + } + + private static void renderOverlayToDirection(BlockState state, Direction side, MatrixStack matrixStack, VertexConsumer vertexConsumer, Vec3d camDif, HitPart part, float red, float green, float blue, float alpha) { + Vector3f vecBottomLeft = null, vecBottomRight = null, vecTopLeft = null, vecTopRight = null, + vecCenterBottomLeft = null, vecCenterBottomRight = null, vecCenterTopLeft = null, vecCenterTopRight = null, + vecCenterMiddleLeft = null, vecCenterMiddleRight = null, vecCenterMiddleBottom = null, vecCenterMiddleTop = null; + + //@formatter:off + switch (side) { + case DOWN -> { + vecBottomLeft = new Vector3f(0f, 0f, 0f); + vecBottomRight = new Vector3f(1f, 0f, 0f); + vecTopLeft = new Vector3f(0f, 0f, 1f); + vecTopRight = new Vector3f(1f, 0f, 1f); + vecCenterBottomLeft = new Vector3f(0.25f, 0f, 0.25f); + vecCenterBottomRight = new Vector3f(0.75f, 0f, 0.25f); + vecCenterTopLeft = new Vector3f(0.25f, 0f, 0.75f); + vecCenterTopRight = new Vector3f(0.75f, 0f, 0.75f); + vecCenterMiddleLeft = new Vector3f(0.25f, 0f, 0.5f); + vecCenterMiddleRight = new Vector3f(0.75f, 0f, 0.5f); + vecCenterMiddleBottom = new Vector3f(0.5f, 0f, 0.25f); + vecCenterMiddleTop = new Vector3f(0.5f, 0f, 0.75f); + } + case UP -> { + vecBottomLeft = new Vector3f(1f, 1f, 0f); + vecBottomRight = new Vector3f(0f, 1f, 0f); + vecTopLeft = new Vector3f(1f, 1f, 1f); + vecTopRight = new Vector3f(0f, 1f, 1f); + vecCenterBottomLeft = new Vector3f(0.75f, 1f, 0.25f); + vecCenterBottomRight = new Vector3f(0.25f, 1f, 0.25f); + vecCenterTopLeft = new Vector3f(0.75f, 1f, 0.75f); + vecCenterTopRight = new Vector3f(0.25f, 1f, 0.75f); + vecCenterMiddleLeft = new Vector3f(0.75f, 1f, 0.5f); + vecCenterMiddleRight = new Vector3f(0.25f, 1f, 0.5f); + vecCenterMiddleBottom = new Vector3f(0.5f, 1f, 0.25f); + vecCenterMiddleTop = new Vector3f(0.5f, 1f, 0.75f); + } + case NORTH -> { + vecBottomLeft = new Vector3f(1f, 0f, 0f); + vecBottomRight = new Vector3f(0f, 0f, 0f); + vecTopLeft = new Vector3f(1f, 1f, 0f); + vecTopRight = new Vector3f(0f, 1f, 0f); + vecCenterBottomLeft = new Vector3f(0.75f, 0.25f, 0f); + vecCenterBottomRight = new Vector3f(0.25f, 0.25f, 0f); + vecCenterTopLeft = new Vector3f(0.75f, 0.75f, 0f); + vecCenterTopRight = new Vector3f(0.25f, 0.75f, 0f); + vecCenterMiddleLeft = new Vector3f(0.75f, 0.5f, 0f); + vecCenterMiddleRight = new Vector3f(0.25f, 0.5f, 0f); + vecCenterMiddleBottom = new Vector3f(0.5f, 0.25f, 0f); + vecCenterMiddleTop = new Vector3f(0.5f, .75f, 0f); + } + case SOUTH -> { + vecBottomLeft = new Vector3f(0f, 0f, 1f); + vecBottomRight = new Vector3f(1f, 0f, 1f); + vecTopLeft = new Vector3f(0f, 1f, 1f); + vecTopRight = new Vector3f(1f, 1f, 1f); + vecCenterBottomLeft = new Vector3f(0.25f, 0.25f, 1f); + vecCenterBottomRight = new Vector3f(0.75f, 0.25f, 1f); + vecCenterTopLeft = new Vector3f(0.25f, 0.75f, 1f); + vecCenterTopRight = new Vector3f(0.75f, 0.75f, 1f); + vecCenterMiddleLeft = new Vector3f(0.25f, 0.5f, 1f); + vecCenterMiddleRight = new Vector3f(0.75f, 0.5f, 1f); + vecCenterMiddleBottom = new Vector3f(0.5f, 0.25f, 1f); + vecCenterMiddleTop = new Vector3f(0.5f, 0.75f, 1f); + } + case WEST -> { + vecBottomLeft = new Vector3f(0f, 0f, 0f); + vecBottomRight = new Vector3f(0f, 0f, 1f); + vecTopLeft = new Vector3f(0f, 1f, 0f); + vecTopRight = new Vector3f(0f, 1f, 1f); + vecCenterBottomLeft = new Vector3f(0f, 0.25f, 0.25f); + vecCenterBottomRight = new Vector3f(0f, 0.25f, 0.75f); + vecCenterTopLeft = new Vector3f(0f, 0.75f, 0.25f); + vecCenterTopRight = new Vector3f(0f, 0.75f, 0.75f); + vecCenterMiddleLeft = new Vector3f(0f, 0.5f, 0.25f); + vecCenterMiddleRight = new Vector3f(0f, 0.5f, 0.75f); + vecCenterMiddleBottom = new Vector3f(0f, 0.25f, 0.5f); + vecCenterMiddleTop = new Vector3f(0f, 0.75f, 0.5f); + } + case EAST -> { + vecBottomLeft = new Vector3f(1f, 0f, 1f); + vecBottomRight = new Vector3f(1f, 0f, 0f); + vecTopLeft = new Vector3f(1f, 1f, 1f); + vecTopRight = new Vector3f(1f, 1f, 0f); + vecCenterBottomLeft = new Vector3f(1f, 0.25f, 0.75f); + vecCenterBottomRight = new Vector3f(1f, 0.25f, 0.25f); + vecCenterTopLeft = new Vector3f(1f, 0.75f, 0.75f); + vecCenterTopRight = new Vector3f(1f, 0.75f, 0.25f); + vecCenterMiddleLeft = new Vector3f(1f, 0.5f, 0.75f); + vecCenterMiddleRight = new Vector3f(1f, 0.5f, 0.25f); + vecCenterMiddleBottom = new Vector3f(1f, 0.25f, 0.5f); + vecCenterMiddleTop = new Vector3f(1f, 0.75f, 0.5f); + } + } + //@formatter:on + + SlabType slabType = null; + VerticalType verticalType = null; + if (state != null) { + slabType = state.get(SlabBlock.TYPE); + verticalType = state.get(VERTICAL_TYPE); + } + MatrixStack.Entry entry = matrixStack.peek(); + + switch (clientSlabLockPosition) { + case DEFAULT_AUTOSLABS -> { + // I have no idea why, but this code only works when + // in an if chain and not a switch statement + if (part == HitPart.CENTER) { + drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + } + else if (part == HitPart.BOTTOM) { + drawTopBottomLines(entry, vertexConsumer, vecBottomLeft, vecBottomRight, vecCenterBottomLeft, vecCenterBottomRight, vecCenterMiddleBottom, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + else if (part == HitPart.TOP) { + drawTopBottomLines(entry, vertexConsumer, vecTopLeft, vecTopRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleTop, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + else if (part == HitPart.LEFT) { + drawLeftRightLines(entry, vertexConsumer, vecBottomLeft, vecTopLeft, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleLeft, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + else if (part == HitPart.RIGHT) { + drawLeftRightLines(entry, vertexConsumer, vecBottomRight, vecTopRight, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleRight, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + } + case BOTTOM_SLAB -> { + switch (side) { + case UP, DOWN -> drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + case NORTH, SOUTH, EAST, WEST -> drawTopBottomLines(entry, vertexConsumer, vecBottomLeft, vecBottomRight, vecCenterBottomLeft, vecCenterBottomRight, vecCenterMiddleBottom, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + } + case TOP_SLAB -> { + switch (side) { + case UP, DOWN -> drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + case NORTH, SOUTH, EAST, WEST -> drawTopBottomLines(entry, vertexConsumer, vecTopLeft, vecTopRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleTop, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + } + case NORTH_SLAB_VERTICAL -> { + switch (side) { + case UP, DOWN -> drawTopBottomLines(entry, vertexConsumer, vecBottomLeft, vecBottomRight, vecCenterBottomLeft, vecCenterBottomRight, vecCenterMiddleBottom, slabType, verticalType, side, camDif, red, green, blue, alpha); + case NORTH, SOUTH -> drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + case EAST -> drawLeftRightLines(entry, vertexConsumer, vecBottomRight, vecTopRight, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleRight, slabType, verticalType, side, camDif, red, green, blue, alpha); + case WEST -> drawLeftRightLines(entry, vertexConsumer, vecBottomLeft, vecTopLeft, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleLeft, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + } + case SOUTH_SLAB_VERTICAL -> { + switch (side) { + case UP, DOWN -> drawTopBottomLines(entry, vertexConsumer, vecTopLeft, vecTopRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleTop, slabType, verticalType, side, camDif, red, green, blue, alpha); + case NORTH, SOUTH -> drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + case EAST -> drawLeftRightLines(entry, vertexConsumer, vecBottomLeft, vecTopLeft, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleLeft, slabType, verticalType, side, camDif, red, green, blue, alpha); + case WEST -> drawLeftRightLines(entry, vertexConsumer, vecBottomRight, vecTopRight, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleRight, slabType, verticalType, side, camDif, red, green, blue, alpha); + } + } + case EAST_SLAB_VERTICAL -> { + switch (side) { + case UP, NORTH -> drawLeftRightLines(entry, vertexConsumer, vecBottomLeft, vecTopLeft, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleLeft, slabType, verticalType, side, camDif, red, green, blue, alpha); + case DOWN, SOUTH -> drawLeftRightLines(entry, vertexConsumer, vecBottomRight, vecTopRight, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleRight, slabType, verticalType, side, camDif, red, green, blue, alpha); + case EAST, WEST -> drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + } + } + case WEST_SLAB_VERTICAL -> { + switch (side) { + case UP, NORTH -> drawLeftRightLines(entry, vertexConsumer, vecBottomRight, vecTopRight, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleRight, slabType, verticalType, side, camDif, red, green, blue, alpha); + case DOWN, SOUTH -> drawLeftRightLines(entry, vertexConsumer, vecBottomLeft, vecTopLeft, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleLeft, slabType, verticalType, side, camDif, red, green, blue, alpha); + case EAST, WEST -> drawCenterLines(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, vecCenterMiddleBottom, vecCenterMiddleTop, camDif, slabType, verticalType, side, red, green, blue, alpha); + } + } + } + } + + private static void drawLeftRightLines(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleCorner, SlabType slabType, VerticalType verticalType, Direction side, Vec3d camDif, float red, float green, float blue, float alpha) { + if (verticalType != null && slabType != null) { + switch (verticalType) { + case FALSE -> { + switch (slabType) { + case BOTTOM, TOP -> { + if (side == Direction.DOWN || side == Direction.UP) { + drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } else { + drawInternal(entry, vertexConsumer, vecEndCorner, vecStartCorner, vecCenterEndCorner, vecCenterStartCorner, vecCenterMiddleCorner, slabType, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + case NORTH_SOUTH -> { + switch (slabType) { + case BOTTOM, TOP -> { + if (side == Direction.DOWN || side == Direction.UP) { + drawInternal(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, vecCenterMiddleCorner, slabType, camDif, red, green, blue, alpha); + } else { + drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + case EAST_WEST -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } else { + drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + + private static void drawCenterLines(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecCenterBottomLeft, Vector3f vecCenterBottomRight, Vector3f vecCenterTopLeft, Vector3f vecCenterTopRight, Vector3f vecCenterMiddleLeft, Vector3f vecCenterMiddleRight, Vector3f vecCenterMiddleBottom, Vector3f vecCenterMiddleTop, Vec3d camDif, SlabType slabType, VerticalType verticalType, Direction side, float red, float green, float blue, float alpha) { + if (verticalType != null && slabType != null) { + switch (verticalType) { + case FALSE -> { + switch (slabType) { + case BOTTOM, TOP -> { + if (side == Direction.DOWN || side == Direction.UP) { + drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + } else { + drawInternalSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, vecCenterMiddleLeft, vecCenterMiddleRight, slabType, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + } + } + case NORTH_SOUTH -> { + switch (slabType) { + case BOTTOM, TOP -> { + switch (side) { + case DOWN, UP -> drawInternalSquare(entry, vertexConsumer, vecCenterTopLeft, vecCenterTopRight, vecCenterBottomLeft, vecCenterBottomRight, vecCenterMiddleLeft, vecCenterMiddleRight, slabType, camDif, red, green, blue, alpha); + case NORTH, SOUTH -> drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + case EAST -> drawInternalSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterTopLeft, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleBottom, vecCenterMiddleTop, slabType, camDif, red, green, blue, alpha); + case WEST -> drawInternalSquare(entry, vertexConsumer, vecCenterBottomRight, vecCenterTopRight, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleBottom, vecCenterMiddleTop, slabType, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + } + } + case EAST_WEST -> { + switch (slabType) { + case BOTTOM, TOP -> { + switch (side) { + case EAST, WEST -> drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + case SOUTH, DOWN -> drawInternalSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterTopLeft, vecCenterBottomRight, vecCenterTopRight, vecCenterMiddleBottom, vecCenterMiddleTop, slabType, camDif, red, green, blue, alpha); + case NORTH, UP -> drawInternalSquare(entry, vertexConsumer, vecCenterBottomRight, vecCenterTopRight, vecCenterBottomLeft, vecCenterTopLeft, vecCenterMiddleBottom, vecCenterMiddleTop, slabType, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + } + } + } + } else { + drawDefaultSquare(entry, vertexConsumer, vecCenterBottomLeft, vecCenterBottomRight, vecCenterTopLeft, vecCenterTopRight, camDif, red, green, blue, alpha); + } + } + + private static void drawTopBottomLines(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleCorner, SlabType slabType, VerticalType verticalType, Direction side, Vec3d camDif, float red, float green, float blue, float alpha) { + if (verticalType != null && slabType != null) { + switch (verticalType) { + case FALSE -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + case NORTH_SOUTH -> { + switch (slabType) { + case BOTTOM, TOP -> { + switch (side) { + case DOWN, UP, NORTH, SOUTH -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + case EAST -> drawInternal(entry, vertexConsumer, vecEndCorner, vecStartCorner, vecCenterEndCorner, vecCenterStartCorner, vecCenterMiddleCorner, slabType, camDif, red, green, blue, alpha); + case WEST -> drawInternal(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, vecCenterMiddleCorner, slabType, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + case EAST_WEST -> { + switch (slabType) { + case BOTTOM, TOP -> { + switch (side) { + case EAST, WEST -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + case NORTH, UP -> drawInternal(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, vecCenterMiddleCorner, slabType, camDif, red, green, blue, alpha); + case SOUTH, DOWN -> drawInternal(entry, vertexConsumer, vecEndCorner, vecStartCorner, vecCenterEndCorner, vecCenterStartCorner, vecCenterMiddleCorner, slabType, camDif, red, green, blue, alpha); + } + } + case DOUBLE -> drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + } + } else { + drawDefaultLines(entry, vertexConsumer, vecStartCorner, vecEndCorner, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + } + + private static void drawInternalSquare(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleStart, Vector3f vecCenterMiddleEnd, SlabType slabType, Vec3d camDif, float red, float green, float blue, float alpha) { + if (Objects.equals(slabType, SlabType.TOP)) { + drawLine(entry, vertexConsumer, vecCenterMiddleStart, vecCenterStartCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecCenterEndCorner, vecCenterMiddleEnd, camDif, red, green, blue, alpha); + } else if (Objects.equals(slabType, SlabType.BOTTOM)) { + drawLine(entry, vertexConsumer, vecStartCorner, vecCenterMiddleStart, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecStartCorner, vecEndCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecEndCorner, vecCenterMiddleEnd, camDif, red, green, blue, alpha); + } + } + + private static void drawInternal(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vector3f vecCenterMiddleCorner, SlabType slabType, Vec3d camDif, float red, float green, float blue, float alpha) { + if (Objects.equals(slabType, SlabType.BOTTOM)) { + drawLine(entry, vertexConsumer, vecEndCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecCenterEndCorner, vecCenterMiddleCorner, camDif, red, green, blue, alpha); + } else if (Objects.equals(slabType, SlabType.TOP)) { + drawLine(entry, vertexConsumer, vecStartCorner, vecCenterStartCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecCenterStartCorner, vecCenterMiddleCorner, camDif, red, green, blue, alpha); + } + } + + private static void drawDefaultLines(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vec3d camDif, float red, float green, float blue, float alpha) { + drawLine(entry, vertexConsumer, vecStartCorner, vecCenterStartCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecEndCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + + private static void drawDefaultSquare(MatrixStack.Entry entry, VertexConsumer vertexConsumer, Vector3f vecStartCorner, Vector3f vecEndCorner, Vector3f vecCenterStartCorner, Vector3f vecCenterEndCorner, Vec3d camDif, float red, float green, float blue, float alpha) { + drawLine(entry, vertexConsumer, vecStartCorner, vecEndCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecStartCorner, vecCenterStartCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecEndCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + drawLine(entry, vertexConsumer, vecCenterStartCorner, vecCenterEndCorner, camDif, red, green, blue, alpha); + } + +} + diff --git a/src/main/java/io/github/andrew6rant/autoslabs/util/Util.java b/src/main/java/io/github/andrew6rant/autoslabs/util/Util.java new file mode 100644 index 0000000..998e920 --- /dev/null +++ b/src/main/java/io/github/andrew6rant/autoslabs/util/Util.java @@ -0,0 +1,126 @@ +package io.github.andrew6rant.autoslabs.util; + +import io.github.andrew6rant.autoslabs.VerticalType; +import net.minecraft.block.Block; +import net.minecraft.block.SlabBlock; +import net.minecraft.block.enums.SlabType; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec2f; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.shape.VoxelShape; +import org.joml.Vector3f; +import io.github.andrew6rant.autoslabs.statement.StatementStateRefresher; + +import java.util.Optional; + +import static io.github.andrew6rant.autoslabs.AutoSlabs.AUTO_SLABS_RESOURCES; + +// massive thanks to Schauweg for some of this code +public class Util { + + public static final EnumProperty VERTICAL_TYPE; + public static final EnumProperty TYPE; + public static final VoxelShape BOTTOM_SHAPE; + public static final VoxelShape TOP_SHAPE; + public static final VoxelShape VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE; + public static final VoxelShape VERTICAL_NORTH_SOUTH_TOP_SHAPE; + public static final VoxelShape VERTICAL_EAST_WEST_BOTTOM_SHAPE; + public static final VoxelShape VERTICAL_EAST_WEST_TOP_SHAPE; + + static { + VERTICAL_TYPE = EnumProperty.of("vertical_type", VerticalType.class); + TYPE = Properties.SLAB_TYPE; + BOTTOM_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 8.0, 16.0); + TOP_SHAPE = Block.createCuboidShape(0.0, 8.0, 0.0, 16.0, 16.0, 16.0); + VERTICAL_NORTH_SOUTH_BOTTOM_SHAPE = Block.createCuboidShape(0.0, 0.0, 8.0, 16.0, 16.0, 16.0); + VERTICAL_NORTH_SOUTH_TOP_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 8.0); + VERTICAL_EAST_WEST_BOTTOM_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 8.0, 16.0, 16.0); + VERTICAL_EAST_WEST_TOP_SHAPE = Block.createCuboidShape(8.0, 0.0, 0.0, 16.0, 16.0, 16.0); + } + + public static void registerSlab(Block block) { + if (block instanceof SlabBlock slabBlock) { + StatementStateRefresher.INSTANCE.addBlockProperty(slabBlock, VERTICAL_TYPE, VerticalType.FALSE); + ModelUtil.setup(AUTO_SLABS_RESOURCES, slabBlock); + } + } + + public static Vec3d getCameraOffset(Vec3d camDif, VoxelShape shape, Direction side) { + Direction.Axis axis = side.getAxis(); + double xDif = camDif.x; + double yDif = camDif.y; + double zDif = camDif.z; + switch (side) { + case UP -> yDif = camDif.y + (-1 + shape.getMax(axis)); + case DOWN -> yDif = camDif.y + shape.getMin(axis); + case NORTH -> zDif = camDif.z + shape.getMin(axis); + case SOUTH -> zDif = camDif.z + (-1 + shape.getMax(axis)); + case EAST -> xDif = camDif.x + (-1 + shape.getMax(axis)); + case WEST -> xDif = camDif.x + shape.getMin(axis); + } + return new Vec3d(xDif, yDif, zDif); + } + + public static HitPart getHitPart(BlockHitResult hit) { + Optional hitPos = getHitPos(hit); + if (hitPos.isEmpty()) return null; + + Vec2f hPos = hitPos.get(); + + double x = hPos.x; + double y = hPos.y; + + double offH = Math.abs(x - 0.5d); + double offV = Math.abs(y - 0.5d); + + if (offH > 0.25d || offV > 0.25d) { + if (offH > offV) { + return x < 0.5d ? HitPart.LEFT : HitPart.RIGHT; + } else { + return y < 0.5d ? HitPart.BOTTOM : HitPart.TOP; + } + } else { + return HitPart.CENTER; + } + } + + private static Optional getHitPos(BlockHitResult hit) { + Direction direction = hit.getSide(); + BlockPos blockPos = hit.getBlockPos().offset(direction); + Vec3d vec3d = hit.getPos().subtract(blockPos.getX(), blockPos.getY(), blockPos.getZ()); + double x = vec3d.getX(); + double y = vec3d.getY(); + double z = vec3d.getZ(); + return switch (direction) { + case NORTH -> Optional.of(new Vec2f((float) (1.0 - x), (float) y)); + case SOUTH -> Optional.of(new Vec2f((float) x, (float) y)); + case WEST -> Optional.of(new Vec2f((float) z, (float) y)); + case EAST -> Optional.of(new Vec2f((float) (1.0 - z), (float) y)); + case DOWN -> Optional.of(new Vec2f((float) x, (float) z)); + case UP -> Optional.of(new Vec2f((float) (1.0 - x), (float) z)); + }; + } + + public static Vector3f getNormalAngle(Vector3f start, Vector3f end) { + float xLength = end.x - start.x; + float yLength = end.y - start.y; + float zLength = end.z - start.z; + float distance = (float) Math.sqrt(xLength * xLength + yLength * yLength + zLength * zLength); + xLength /= distance; + yLength /= distance; + zLength /= distance; + return new Vector3f(xLength, yLength, zLength); + } + + public enum HitPart { + CENTER, + LEFT, + RIGHT, + BOTTOM, + TOP + } +} diff --git a/src/main/resources/assets/autoslabs/icon.png b/src/main/resources/assets/autoslabs/icon.png index 047b91f..c4149e7 100644 Binary files a/src/main/resources/assets/autoslabs/icon.png and b/src/main/resources/assets/autoslabs/icon.png differ diff --git a/src/main/resources/assets/autoslabs/lang/en_us.json b/src/main/resources/assets/autoslabs/lang/en_us.json new file mode 100644 index 0000000..507ff9c --- /dev/null +++ b/src/main/resources/assets/autoslabs/lang/en_us.json @@ -0,0 +1,20 @@ +{ + "auto_slabs.midnightconfig.title": "AutoSlabs", + "auto_slabs.midnightconfig.dumpResources": "Dump generated resources on boot?", + "auto_slabs.midnightconfig.showEnhancedSlabLines": "Show enhanced slab lines?", + "auto_slabs.midnightconfig.enableSlabLock": "Placement Master Toggle", + "auto_slabs.midnightconfig.showCrosshairIcon": "Crosshair Icon Visibility", + "auto_slabs.midnightconfig.enum.ShowCrosshairIcon.ALWAYS": "Always", + "auto_slabs.midnightconfig.enum.ShowCrosshairIcon.ON_CHANGE": "On Change", + "auto_slabs.midnightconfig.enum.ShowCrosshairIcon.NEVER": "Never", + "category.autoslabs.keybinds": "AutoSlabs", + "key.autoslabs.place_mode": "Toggle Placement Mode", + "text.autoslabs.slab_lock.DEFAULT_AUTOSLABS": "AutoSlabs Mode: Default", + "text.autoslabs.slab_lock.BOTTOM_SLAB": "AutoSlabs Mode: Bottom Slab", + "text.autoslabs.slab_lock.TOP_SLAB": "AutoSlabs Mode: Top Slab", + "text.autoslabs.slab_lock.NORTH_SLAB_VERTICAL": "AutoSlabs Mode: North Vertical Slab", + "text.autoslabs.slab_lock.SOUTH_SLAB_VERTICAL": "AutoSlabs Mode: South Vertical Slab", + "text.autoslabs.slab_lock.EAST_SLAB_VERTICAL": "AutoSlabs Mode: East Vertical Slab", + "text.autoslabs.slab_lock.WEST_SLAB_VERTICAL": "AutoSlabs Mode: West Vertical Slab", + "text.autoslabs.slab_lock.VANILLA_PLACEMENT": "AutoSlabs Mode: Vanilla Placement" +} \ No newline at end of file diff --git a/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_bottom_template.json b/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_bottom_template.json index 080d098..a206191 100644 --- a/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_bottom_template.json +++ b/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_bottom_template.json @@ -10,7 +10,7 @@ "to": [8, 16, 16], "faces": { "north": {"uv": [8, 0, 16, 16], "texture": "#side_vertical", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side"}, "south": {"uv": [0, 0, 8, 16], "texture": "#side_vertical", "cullface": "south"}, "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"}, "up": {"uv": [0, 0, 8, 16], "texture": "#top", "cullface": "up"}, diff --git a/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_top_template.json b/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_top_template.json index 2ab68dd..96dfe34 100644 --- a/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_top_template.json +++ b/src/main/resources/assets/autoslabs/models/block/slab_vertical_east_west_top_template.json @@ -12,7 +12,7 @@ "north": {"uv": [0, 0, 8, 16], "texture": "#side_vertical", "cullface": "north"}, "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, "south": {"uv": [8, 0, 16, 16], "texture": "#side_vertical", "cullface": "south"}, - "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side"}, "up": {"uv": [8, 0, 16, 16], "texture": "#top", "cullface": "up"}, "down": {"uv": [8, 0, 16, 16], "texture": "#bottom", "cullface": "down"} } diff --git a/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_bottom_template.json b/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_bottom_template.json index 641232d..276a8c3 100644 --- a/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_bottom_template.json +++ b/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_bottom_template.json @@ -9,7 +9,7 @@ "from": [0, 0, 8], "to": [16, 16, 16], "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "north"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#side"}, "east": {"uv": [0, 0, 8, 16], "texture": "#side_vertical", "cullface": "east"}, "south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"}, "west": {"uv": [8, 0, 16, 16], "texture": "#side_vertical", "cullface": "west"}, diff --git a/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_top_template.json b/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_top_template.json index 25c4ff1..0fd713c 100644 --- a/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_top_template.json +++ b/src/main/resources/assets/autoslabs/models/block/slab_vertical_north_south_top_template.json @@ -10,8 +10,8 @@ "to": [16, 16, 8], "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "north"}, - "east": {"uv": [0, 0, 8, 16], "texture": "#side_vertical", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [8, 0, 16, 16], "texture": "#side_vertical", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side"}, "west": {"uv": [0, 0, 8, 16], "texture": "#side_vertical", "cullface": "west"}, "up": {"uv": [0, 0, 16, 8], "texture": "#top", "cullface": "up"}, "down": {"uv": [0, 0, 16, 8], "texture": "#bottom", "cullface": "down"} diff --git a/src/main/resources/assets/autoslabs/textures/gui/autoslabs_position_lock.png b/src/main/resources/assets/autoslabs/textures/gui/autoslabs_position_lock.png new file mode 100644 index 0000000..0515db1 Binary files /dev/null and b/src/main/resources/assets/autoslabs/textures/gui/autoslabs_position_lock.png differ diff --git a/src/main/resources/autoslabs.mixins.json b/src/main/resources/autoslabs.mixins.json index 27bb828..9ed0a4b 100644 --- a/src/main/resources/autoslabs.mixins.json +++ b/src/main/resources/autoslabs.mixins.json @@ -3,10 +3,14 @@ "package": "io.github.andrew6rant.autoslabs.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ - "FileResourcePackProviderMixin", - "SlabBlockMixin" + "PaneBlockMixin", + "ServerPlayerInteractionManagerMixin", + "SlabBlockMixin", + "StatementStateMixin" ], "client": [ + "BlockRenderManagerMixin", + "ClientPlayerInteractionManagerMixin", "WorldRendererMixin" ], "injectors": { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index cf7d372..0df7e1c 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -2,14 +2,13 @@ "schemaVersion": 1, "id": "autoslabs", "version": "${version}", - "name": "Auto Slabs", - "description": "Automatically Generate vertical slabs for every instance of SlabBlock", + "name": "AutoSlabs", + "description": "Automatically generate and inject vertical slabs states for every instance of SlabBlock, without adding a single new block!", "authors": [ "Andrew6rant (Andrew Grant)" ], "contact": { - "homepage": "https://fabricmc.net/", - "sources": "https://github.com/FabricMC/fabric-example-mod" + "sources": "https://github.com/Andrew6rant/Auto-Slabs" }, "license": "MIT", "icon": "assets/autoslabs/icon.png", @@ -20,19 +19,18 @@ ], "client": [ "io.github.andrew6rant.autoslabs.AutoSlabsClient" + ], + "modmenu": [ + "io.github.andrew6rant.autoslabs.config.ConfigEntrypoint" ] }, "mixins": [ "autoslabs.mixins.json" ], "depends": { - "fabricloader": ">=0.14.12", - "minecraft": "~1.19.3", + "fabricloader": ">=${loader_version}", + "minecraft": ">=1.21 <=1.21.1", "java": ">=17", - "fabric-api": "*", - "statement": ">=4.2.5" - }, - "suggests": { - "another-mod": "*" + "fabric-api": "*" } } \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/cut_red_sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/cut_red_sandstone_slab.json new file mode 100644 index 0000000..3e8bfca --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/cut_red_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/cut_red_sandstone_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/cut_red_sandstone_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/cut_red_sandstone_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/cut_sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/cut_sandstone_slab.json new file mode 100644 index 0000000..7042993 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/cut_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/cut_sandstone_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/cut_sandstone_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/cut_sandstone_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_andesite_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_andesite_slab.json new file mode 100644 index 0000000..5f145d1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_andesite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/polished_andesite_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/polished_andesite_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/polished_andesite_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_blackstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_blackstone_slab.json new file mode 100644 index 0000000..00e26a0 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_blackstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/polished_blackstone_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/polished_blackstone_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/polished_blackstone_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_deepslate_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_deepslate_slab.json new file mode 100644 index 0000000..546c055 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_deepslate_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/polished_deepslate_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/polished_deepslate_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/polished_deepslate_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_diorite_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_diorite_slab.json new file mode 100644 index 0000000..0236cba --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_diorite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/polished_diorite_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/polished_diorite_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/polished_diorite_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_granite_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_granite_slab.json new file mode 100644 index 0000000..8a4ffd7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/polished_granite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/polished_granite_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/polished_granite_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/polished_granite_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/prismarine_brick_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/prismarine_brick_slab.json new file mode 100644 index 0000000..2f23a2d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/prismarine_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/prismarine_brick_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/prismarine_brick_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/prismarine_brick_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/quartz_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/quartz_slab.json new file mode 100644 index 0000000..ae79af7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/quartz_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/quartz_block_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/quartz_block_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/quartz_block_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/red_sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/red_sandstone_slab.json new file mode 100644 index 0000000..4c1f10b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/red_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/red_sandstone_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/red_sandstone_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/red_sandstone_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/sandstone_slab.json new file mode 100644 index 0000000..9589fd2 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/sandstone_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/sandstone_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/sandstone_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/smooth_stone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/smooth_stone_slab.json new file mode 100644 index 0000000..ae1185c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/blockstates/smooth_stone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "minecraft:block/smooth_stone_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "minecraft:block/smooth_stone_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "minecraft:block/smooth_stone_slab_double" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab.json new file mode 100644 index 0000000..343e165 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone_slab", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_double.json new file mode 100644 index 0000000..9183788 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone_slab", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_top.json new file mode 100644 index 0000000..1b3ed50 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone_slab", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..e72ca6d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "side_vertical": "minecraft:block/cut_red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_double.json new file mode 100644 index 0000000..d49568f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "side_vertical": "minecraft:block/cut_red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_top.json new file mode 100644 index 0000000..e52fd52 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "side_vertical": "minecraft:block/cut_red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..abe9ffa --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "side_vertical": "minecraft:block/cut_red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_double.json new file mode 100644 index 0000000..60b358a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "side_vertical": "minecraft:block/cut_red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_top.json new file mode 100644 index 0000000..b36b1ca --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_red_sandstone_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "side_vertical": "minecraft:block/cut_red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab.json new file mode 100644 index 0000000..8ae591b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone_slab", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_double.json new file mode 100644 index 0000000..46e5430 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone_slab", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_top.json new file mode 100644 index 0000000..1aafa7c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone_slab", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..05c4fee --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "side_vertical": "minecraft:block/cut_sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_double.json new file mode 100644 index 0000000..7023a9a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "side_vertical": "minecraft:block/cut_sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_top.json new file mode 100644 index 0000000..c414fb8 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "side_vertical": "minecraft:block/cut_sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..a24bf26 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "side_vertical": "minecraft:block/cut_sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_double.json new file mode 100644 index 0000000..e49dece --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "side_vertical": "minecraft:block/cut_sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_top.json new file mode 100644 index 0000000..0e18471 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/cut_sandstone_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "side_vertical": "minecraft:block/cut_sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab.json new file mode 100644 index 0000000..8bd51b9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite_slab", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_double.json new file mode 100644 index 0000000..df13a0d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite_slab", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_top.json new file mode 100644 index 0000000..f26a1d1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite_slab", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..bdc069b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "side_vertical": "minecraft:block/polished_andesite_slab_vertical", + "top": "minecraft:block/polished_andesite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_double.json new file mode 100644 index 0000000..edc2ddd --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "side_vertical": "minecraft:block/polished_andesite_slab_vertical", + "top": "minecraft:block/polished_andesite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_top.json new file mode 100644 index 0000000..65b35b2 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "side_vertical": "minecraft:block/polished_andesite_slab_vertical", + "top": "minecraft:block/polished_andesite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..e173b30 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "side_vertical": "minecraft:block/polished_andesite_slab_vertical", + "top": "minecraft:block/polished_andesite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_double.json new file mode 100644 index 0000000..d9f3747 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "side_vertical": "minecraft:block/polished_andesite_slab_vertical", + "top": "minecraft:block/polished_andesite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_top.json new file mode 100644 index 0000000..89bd2d5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_andesite_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "side_vertical": "minecraft:block/polished_andesite_slab_vertical", + "top": "minecraft:block/polished_andesite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab.json new file mode 100644 index 0000000..274dd92 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone_slab", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_double.json new file mode 100644 index 0000000..772f6b3 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone_slab", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_top.json new file mode 100644 index 0000000..3199823 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone_slab", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..ff2bd1a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "side_vertical": "minecraft:block/polished_blackstone_slab_vertical", + "top": "minecraft:block/polished_blackstone_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_double.json new file mode 100644 index 0000000..5b67940 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "side_vertical": "minecraft:block/polished_blackstone_slab_vertical", + "top": "minecraft:block/polished_blackstone_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_top.json new file mode 100644 index 0000000..58c1d29 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "side_vertical": "minecraft:block/polished_blackstone_slab_vertical", + "top": "minecraft:block/polished_blackstone_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..b8c5644 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "side_vertical": "minecraft:block/polished_blackstone_slab_vertical", + "top": "minecraft:block/polished_blackstone_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_double.json new file mode 100644 index 0000000..9af86bb --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "side_vertical": "minecraft:block/polished_blackstone_slab_vertical", + "top": "minecraft:block/polished_blackstone_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_top.json new file mode 100644 index 0000000..1b5381d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_blackstone_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "side_vertical": "minecraft:block/polished_blackstone_slab_vertical", + "top": "minecraft:block/polished_blackstone_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab.json new file mode 100644 index 0000000..80141c3 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate_slab", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_double.json new file mode 100644 index 0000000..dd300b0 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate_slab", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_top.json new file mode 100644 index 0000000..545feb4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate_slab", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..943223f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "side_vertical": "minecraft:block/polished_deepslate_slab_vertical", + "top": "minecraft:block/polished_deepslate_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_double.json new file mode 100644 index 0000000..b7f7ac9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "side_vertical": "minecraft:block/polished_deepslate_slab_vertical", + "top": "minecraft:block/polished_deepslate_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_top.json new file mode 100644 index 0000000..7f482af --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "side_vertical": "minecraft:block/polished_deepslate_slab_vertical", + "top": "minecraft:block/polished_deepslate_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..515809b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "side_vertical": "minecraft:block/polished_deepslate_slab_vertical", + "top": "minecraft:block/polished_deepslate_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_double.json new file mode 100644 index 0000000..dc7f1f8 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "side_vertical": "minecraft:block/polished_deepslate_slab_vertical", + "top": "minecraft:block/polished_deepslate_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_top.json new file mode 100644 index 0000000..4e4c340 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_deepslate_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "side_vertical": "minecraft:block/polished_deepslate_slab_vertical", + "top": "minecraft:block/polished_deepslate_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab.json new file mode 100644 index 0000000..46b28e1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite_slab", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_double.json new file mode 100644 index 0000000..b4958a0 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite_slab", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_top.json new file mode 100644 index 0000000..ba86866 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite_slab", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..045ce1b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "side_vertical": "minecraft:block/polished_diorite_slab_vertical", + "top": "minecraft:block/polished_diorite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_double.json new file mode 100644 index 0000000..83fb653 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "side_vertical": "minecraft:block/polished_diorite_slab_vertical", + "top": "minecraft:block/polished_diorite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_top.json new file mode 100644 index 0000000..e77714e --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "side_vertical": "minecraft:block/polished_diorite_slab_vertical", + "top": "minecraft:block/polished_diorite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..6ecd820 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "side_vertical": "minecraft:block/polished_diorite_slab_vertical", + "top": "minecraft:block/polished_diorite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_double.json new file mode 100644 index 0000000..0d83478 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "side_vertical": "minecraft:block/polished_diorite_slab_vertical", + "top": "minecraft:block/polished_diorite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_top.json new file mode 100644 index 0000000..4477b9b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_diorite_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "side_vertical": "minecraft:block/polished_diorite_slab_vertical", + "top": "minecraft:block/polished_diorite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab.json new file mode 100644 index 0000000..1b2d278 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite_slab", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_double.json new file mode 100644 index 0000000..a8d4aa1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite_slab", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_top.json new file mode 100644 index 0000000..e6c63e9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite_slab", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..90ddd06 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "side_vertical": "minecraft:block/polished_granite_slab_vertical", + "top": "minecraft:block/polished_granite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_double.json new file mode 100644 index 0000000..2e40eb9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "side_vertical": "minecraft:block/polished_granite_slab_vertical", + "top": "minecraft:block/polished_granite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_top.json new file mode 100644 index 0000000..8f8bfff --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "side_vertical": "minecraft:block/polished_granite_slab_vertical", + "top": "minecraft:block/polished_granite_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..35ee6c7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "side_vertical": "minecraft:block/polished_granite_slab_vertical", + "top": "minecraft:block/polished_granite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_double.json new file mode 100644 index 0000000..7027d54 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "side_vertical": "minecraft:block/polished_granite_slab_vertical", + "top": "minecraft:block/polished_granite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_top.json new file mode 100644 index 0000000..926ab53 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/polished_granite_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "side_vertical": "minecraft:block/polished_granite_slab_vertical", + "top": "minecraft:block/polished_granite_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab.json new file mode 100644 index 0000000..f6abe12 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks_slab", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_double.json new file mode 100644 index 0000000..5632937 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks_slab", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_top.json new file mode 100644 index 0000000..3ffc0af --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks_slab", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..54e0778 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "side_vertical": "minecraft:block/prismarine_bricks_slab_vertical", + "top": "minecraft:block/prismarine_bricks_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_double.json new file mode 100644 index 0000000..34529ff --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "side_vertical": "minecraft:block/prismarine_bricks_slab_vertical", + "top": "minecraft:block/prismarine_bricks_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_top.json new file mode 100644 index 0000000..6414301 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "side_vertical": "minecraft:block/prismarine_bricks_slab_vertical", + "top": "minecraft:block/prismarine_bricks_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..24f8a1e --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "side_vertical": "minecraft:block/prismarine_bricks_slab_vertical", + "top": "minecraft:block/prismarine_bricks_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_double.json new file mode 100644 index 0000000..2252968 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "side_vertical": "minecraft:block/prismarine_bricks_slab_vertical", + "top": "minecraft:block/prismarine_bricks_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_top.json new file mode 100644 index 0000000..38e2f46 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/prismarine_brick_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "side_vertical": "minecraft:block/prismarine_bricks_slab_vertical", + "top": "minecraft:block/prismarine_bricks_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_double.json new file mode 100644 index 0000000..ab4f655 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_slab", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_top.json new file mode 100644 index 0000000..74593d7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/quartz_block", + "side": "minecraft:block/quartz_block_slab", + "top": "minecraft:block/quartz_block" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..7153280 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/quartz_block", + "side": "minecraft:block/quartz_block", + "side_vertical": "minecraft:block/quartz_block_slab_vertical", + "top": "minecraft:block/quartz_block_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_double.json new file mode 100644 index 0000000..6b708aa --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_side", + "side_vertical": "minecraft:block/quartz_block_slab_vertical", + "top": "minecraft:block/quartz_block_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_top.json new file mode 100644 index 0000000..78fbe3f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/quartz_block", + "side": "minecraft:block/quartz_block", + "side_vertical": "minecraft:block/quartz_block_slab_vertical", + "top": "minecraft:block/quartz_block_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..8d3b1c7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/quartz_block", + "side": "minecraft:block/quartz_block", + "side_vertical": "minecraft:block/quartz_block_slab_vertical", + "top": "minecraft:block/quartz_block_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_double.json new file mode 100644 index 0000000..134a9a7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_side", + "side_vertical": "minecraft:block/quartz_block_slab_vertical", + "top": "minecraft:block/quartz_block_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_top.json new file mode 100644 index 0000000..59743eb --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_block_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/quartz_block", + "side": "minecraft:block/quartz_block", + "side_vertical": "minecraft:block/quartz_block_slab_vertical", + "top": "minecraft:block/quartz_block_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_slab.json new file mode 100644 index 0000000..aca6833 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/quartz_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_slab", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab.json new file mode 100644 index 0000000..e2bdafb --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone_slab", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_double.json new file mode 100644 index 0000000..70ef32c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone_slab", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_top.json new file mode 100644 index 0000000..9872f0c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone_slab", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..5002cbe --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "side_vertical": "minecraft:block/red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_double.json new file mode 100644 index 0000000..875cb1d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "side_vertical": "minecraft:block/red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_top.json new file mode 100644 index 0000000..9e5b7d7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "side_vertical": "minecraft:block/red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..f9a32b0 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "side_vertical": "minecraft:block/red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_double.json new file mode 100644 index 0000000..65f45a6 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "side_vertical": "minecraft:block/red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_top.json new file mode 100644 index 0000000..a98be9a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/red_sandstone_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "side_vertical": "minecraft:block/red_sandstone_slab_vertical", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab.json new file mode 100644 index 0000000..8ccdbf6 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone_slab", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_double.json new file mode 100644 index 0000000..0a749b1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone_slab", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_top.json new file mode 100644 index 0000000..956d32f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone_slab", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..80fb019 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "side_vertical": "minecraft:block/sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_double.json new file mode 100644 index 0000000..4720a79 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "side_vertical": "minecraft:block/sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_top.json new file mode 100644 index 0000000..676ed2b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "side_vertical": "minecraft:block/sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..de64f77 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "side_vertical": "minecraft:block/sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_double.json new file mode 100644 index 0000000..4641a68 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "side_vertical": "minecraft:block/sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_top.json new file mode 100644 index 0000000..f2fb04f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/sandstone_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "side_vertical": "minecraft:block/sandstone_slab_vertical", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab.json new file mode 100644 index 0000000..1df1c23 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone_slab_side", + "top": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_double.json new file mode 100644 index 0000000..8927f2d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone_slab_side", + "top": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_top.json new file mode 100644 index 0000000..b4bc88b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone_slab_side", + "top": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..02b4c22 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone", + "side_vertical": "minecraft:block/smooth_stone_slab_vertical", + "top": "minecraft:block/smooth_stone_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_double.json new file mode 100644 index 0000000..6f2df16 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone", + "side_vertical": "minecraft:block/smooth_stone_slab_vertical", + "top": "minecraft:block/smooth_stone_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_top.json new file mode 100644 index 0000000..d319514 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone", + "side_vertical": "minecraft:block/smooth_stone_slab_vertical", + "top": "minecraft:block/smooth_stone_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..2032507 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone", + "side_vertical": "minecraft:block/smooth_stone_slab_vertical", + "top": "minecraft:block/smooth_stone_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_double.json new file mode 100644 index 0000000..d818927 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone", + "side_vertical": "minecraft:block/smooth_stone_slab_vertical", + "top": "minecraft:block/smooth_stone_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_top.json new file mode 100644 index 0000000..505d40c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/models/block/smooth_stone_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone", + "side_vertical": "minecraft:block/smooth_stone_slab_vertical", + "top": "minecraft:block/smooth_stone_slab" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_red_sandstone_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_red_sandstone_slab.png new file mode 100644 index 0000000..368ff93 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_red_sandstone_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_red_sandstone_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_red_sandstone_slab_vertical.png new file mode 100644 index 0000000..0381b48 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_red_sandstone_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_sandstone_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_sandstone_slab.png new file mode 100644 index 0000000..846c243 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_sandstone_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_sandstone_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_sandstone_slab_vertical.png new file mode 100644 index 0000000..801d7e5 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/cut_sandstone_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_andesite_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_andesite_slab.png new file mode 100644 index 0000000..0cf46bb Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_andesite_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_andesite_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_andesite_slab_vertical.png new file mode 100644 index 0000000..fb0f9ae Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_andesite_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_blackstone_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_blackstone_slab.png new file mode 100644 index 0000000..905fdb3 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_blackstone_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_blackstone_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_blackstone_slab_vertical.png new file mode 100644 index 0000000..589b818 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_blackstone_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_deepslate_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_deepslate_slab.png new file mode 100644 index 0000000..5c95394 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_deepslate_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_deepslate_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_deepslate_slab_vertical.png new file mode 100644 index 0000000..49b656d Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_deepslate_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_diorite_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_diorite_slab.png new file mode 100644 index 0000000..536fab7 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_diorite_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_diorite_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_diorite_slab_vertical.png new file mode 100644 index 0000000..be4426b Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_diorite_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_granite_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_granite_slab.png new file mode 100644 index 0000000..994026b Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_granite_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_granite_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_granite_slab_vertical.png new file mode 100644 index 0000000..e025ee9 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/polished_granite_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/prismarine_bricks_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/prismarine_bricks_slab.png new file mode 100644 index 0000000..0da94e3 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/prismarine_bricks_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/prismarine_bricks_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/prismarine_bricks_slab_vertical.png new file mode 100644 index 0000000..b29fe42 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/prismarine_bricks_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/quartz_block_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/quartz_block_slab.png new file mode 100644 index 0000000..3228e34 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/quartz_block_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/quartz_block_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/quartz_block_slab_vertical.png new file mode 100644 index 0000000..06891be Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/quartz_block_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/red_sandstone_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/red_sandstone_slab.png new file mode 100644 index 0000000..b4472f6 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/red_sandstone_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/red_sandstone_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/red_sandstone_slab_vertical.png new file mode 100644 index 0000000..00c9389 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/red_sandstone_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/sandstone_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/sandstone_slab.png new file mode 100644 index 0000000..f56acc5 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/sandstone_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/sandstone_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/sandstone_slab_vertical.png new file mode 100644 index 0000000..75bf903 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/sandstone_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/smooth_stone_slab.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/smooth_stone_slab.png new file mode 100644 index 0000000..4d89804 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/smooth_stone_slab.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/smooth_stone_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/smooth_stone_slab_vertical.png new file mode 100644 index 0000000..4c8a42e Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/minecraft/textures/block/smooth_stone_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/black_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/black_stained_glass_slab.json new file mode 100644 index 0000000..20e4cd9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/black_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/black_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/black_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/black_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/black_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/black_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/black_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/black_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/blue_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/blue_stained_glass_slab.json new file mode 100644 index 0000000..687b8c6 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/blue_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/blue_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/blue_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/blue_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/blue_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/blue_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/blue_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/blue_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/brown_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/brown_stained_glass_slab.json new file mode 100644 index 0000000..e081a78 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/brown_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/brown_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/brown_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/brown_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/brown_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/brown_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/brown_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/brown_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/cyan_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/cyan_stained_glass_slab.json new file mode 100644 index 0000000..4130a84 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/cyan_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/cyan_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/cyan_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/cyan_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/cyan_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/cyan_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/cyan_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/cyan_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/glass_slab.json new file mode 100644 index 0000000..0c1f164 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/gray_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/gray_stained_glass_slab.json new file mode 100644 index 0000000..cca2856 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/gray_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/gray_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/gray_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/gray_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/gray_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/gray_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/gray_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/gray_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/green_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/green_stained_glass_slab.json new file mode 100644 index 0000000..1135acf --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/green_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/green_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/green_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/green_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/green_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/green_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/green_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/green_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/light_blue_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/light_blue_stained_glass_slab.json new file mode 100644 index 0000000..40aed3c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/light_blue_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/light_blue_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/light_blue_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/light_blue_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/light_blue_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/light_blue_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/light_blue_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/light_blue_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/light_gray_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/light_gray_stained_glass_slab.json new file mode 100644 index 0000000..e4b5241 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/light_gray_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/light_gray_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/light_gray_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/light_gray_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/light_gray_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/light_gray_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/light_gray_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/light_gray_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/lime_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/lime_stained_glass_slab.json new file mode 100644 index 0000000..2106fe5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/lime_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/lime_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/lime_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/lime_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/lime_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/lime_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/lime_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/lime_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/magenta_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/magenta_stained_glass_slab.json new file mode 100644 index 0000000..133a53d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/magenta_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/magenta_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/magenta_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/magenta_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/magenta_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/magenta_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/magenta_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/magenta_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/orange_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/orange_stained_glass_slab.json new file mode 100644 index 0000000..30c117c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/orange_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/orange_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/orange_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/orange_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/orange_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/orange_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/orange_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/orange_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/pink_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/pink_stained_glass_slab.json new file mode 100644 index 0000000..b7e2c91 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/pink_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/pink_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/pink_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/pink_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/pink_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/pink_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/pink_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/pink_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/purple_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/purple_stained_glass_slab.json new file mode 100644 index 0000000..bcb6243 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/purple_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/purple_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/purple_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/purple_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/purple_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/purple_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/purple_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/purple_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/red_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/red_stained_glass_slab.json new file mode 100644 index 0000000..a72f0e5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/red_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/red_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/red_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/red_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/red_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/red_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/red_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/red_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/tinted_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/tinted_glass_slab.json new file mode 100644 index 0000000..7e88d3b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/tinted_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/tinted_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/tinted_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/tinted_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/tinted_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/tinted_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/tinted_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/tinted_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/white_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/white_stained_glass_slab.json new file mode 100644 index 0000000..215cec4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/white_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/white_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/white_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/white_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/white_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/white_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/white_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/white_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/yellow_stained_glass_slab.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/yellow_stained_glass_slab.json new file mode 100644 index 0000000..cdd9512 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/blockstates/yellow_stained_glass_slab.json @@ -0,0 +1,25 @@ +{ + "variants": { + "type=double,vertical_type=north_south": { + "model": "mo_glass:block/yellow_stained_glass_slab_vertical_north_south_double" + }, + "type=double,vertical_type=east_west": { + "model": "mo_glass:block/yellow_stained_glass_slab_vertical_east_west_double" + }, + "type=double,vertical_type=false": { + "model": "mo_glass:block/yellow_stained_glass_slab_double" + }, + "type=bottom,vertical_type=north_south": { + "model": "mo_glass:block/yellow_stained_glass_slab_vertical_north_south_bottom" + }, + "type=top,vertical_type=north_south": { + "model": "mo_glass:block/yellow_stained_glass_slab_vertical_north_south_top" + }, + "type=top,vertical_type=east_west": { + "model": "mo_glass:block/yellow_stained_glass_slab_vertical_east_west_top" + }, + "type=bottom,vertical_type=east_west": { + "model": "mo_glass:block/yellow_stained_glass_slab_vertical_east_west_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_double.json new file mode 100644 index 0000000..0dbd295 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/black_stained_glass", + "side": "mo_glass:block/black_stained_glass_slab_double", + "top": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..daec946 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/black_stained_glass_slab_vertical", + "side": "minecraft:block/black_stained_glass", + "side_vertical": "mo_glass:block/black_stained_glass_slab_vertical", + "top": "mo_glass:block/black_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..d9b37b0 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/black_stained_glass_slab_vertical", + "side": "minecraft:block/black_stained_glass", + "side_vertical": "mo_glass:block/black_stained_glass_slab_vertical", + "top": "mo_glass:block/black_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..bbc9895 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/black_stained_glass_slab_vertical", + "side": "minecraft:block/black_stained_glass", + "side_vertical": "mo_glass:block/black_stained_glass_slab_vertical", + "top": "mo_glass:block/black_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..b3e6927 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/black_stained_glass_slab_double", + "side": "minecraft:block/black_stained_glass", + "side_vertical": "mo_glass:block/black_stained_glass_slab_vertical", + "top": "mo_glass:block/black_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..ff3a688 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/black_stained_glass_slab_double", + "side": "minecraft:block/black_stained_glass", + "side_vertical": "mo_glass:block/black_stained_glass_slab_vertical", + "top": "mo_glass:block/black_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..2c2897b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/black_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/black_stained_glass_slab_double", + "side": "minecraft:block/black_stained_glass", + "side_vertical": "mo_glass:block/black_stained_glass_slab_vertical", + "top": "mo_glass:block/black_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_double.json new file mode 100644 index 0000000..5ffb6d5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/blue_stained_glass", + "side": "mo_glass:block/blue_stained_glass_slab_double", + "top": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..09981f7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/blue_stained_glass_slab_vertical", + "side": "minecraft:block/blue_stained_glass", + "side_vertical": "mo_glass:block/blue_stained_glass_slab_vertical", + "top": "mo_glass:block/blue_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..1b2dadf --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/blue_stained_glass_slab_vertical", + "side": "minecraft:block/blue_stained_glass", + "side_vertical": "mo_glass:block/blue_stained_glass_slab_vertical", + "top": "mo_glass:block/blue_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..92c7211 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/blue_stained_glass_slab_vertical", + "side": "minecraft:block/blue_stained_glass", + "side_vertical": "mo_glass:block/blue_stained_glass_slab_vertical", + "top": "mo_glass:block/blue_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..7a25f21 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/blue_stained_glass_slab_double", + "side": "minecraft:block/blue_stained_glass", + "side_vertical": "mo_glass:block/blue_stained_glass_slab_vertical", + "top": "mo_glass:block/blue_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..dc21c09 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/blue_stained_glass_slab_double", + "side": "minecraft:block/blue_stained_glass", + "side_vertical": "mo_glass:block/blue_stained_glass_slab_vertical", + "top": "mo_glass:block/blue_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..33ffeb9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/blue_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/blue_stained_glass_slab_double", + "side": "minecraft:block/blue_stained_glass", + "side_vertical": "mo_glass:block/blue_stained_glass_slab_vertical", + "top": "mo_glass:block/blue_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_double.json new file mode 100644 index 0000000..fc18042 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/brown_stained_glass", + "side": "mo_glass:block/brown_stained_glass_slab_double", + "top": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..3ef0246 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/brown_stained_glass_slab_vertical", + "side": "minecraft:block/brown_stained_glass", + "side_vertical": "mo_glass:block/brown_stained_glass_slab_vertical", + "top": "mo_glass:block/brown_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..b440132 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/brown_stained_glass_slab_vertical", + "side": "minecraft:block/brown_stained_glass", + "side_vertical": "mo_glass:block/brown_stained_glass_slab_vertical", + "top": "mo_glass:block/brown_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..1ea5c0a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/brown_stained_glass_slab_vertical", + "side": "minecraft:block/brown_stained_glass", + "side_vertical": "mo_glass:block/brown_stained_glass_slab_vertical", + "top": "mo_glass:block/brown_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..d651bc1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/brown_stained_glass_slab_double", + "side": "minecraft:block/brown_stained_glass", + "side_vertical": "mo_glass:block/brown_stained_glass_slab_vertical", + "top": "mo_glass:block/brown_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..fc42a7b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/brown_stained_glass_slab_double", + "side": "minecraft:block/brown_stained_glass", + "side_vertical": "mo_glass:block/brown_stained_glass_slab_vertical", + "top": "mo_glass:block/brown_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..515bd1a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/brown_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/brown_stained_glass_slab_double", + "side": "minecraft:block/brown_stained_glass", + "side_vertical": "mo_glass:block/brown_stained_glass_slab_vertical", + "top": "mo_glass:block/brown_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_double.json new file mode 100644 index 0000000..226a5ac --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/cyan_stained_glass", + "side": "mo_glass:block/cyan_stained_glass_slab_double", + "top": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..4e12bb2 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/cyan_stained_glass_slab_vertical", + "side": "minecraft:block/cyan_stained_glass", + "side_vertical": "mo_glass:block/cyan_stained_glass_slab_vertical", + "top": "mo_glass:block/cyan_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..2a95f7d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/cyan_stained_glass_slab_vertical", + "side": "minecraft:block/cyan_stained_glass", + "side_vertical": "mo_glass:block/cyan_stained_glass_slab_vertical", + "top": "mo_glass:block/cyan_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..919c98b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/cyan_stained_glass_slab_vertical", + "side": "minecraft:block/cyan_stained_glass", + "side_vertical": "mo_glass:block/cyan_stained_glass_slab_vertical", + "top": "mo_glass:block/cyan_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..cb7a744 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/cyan_stained_glass_slab_double", + "side": "minecraft:block/cyan_stained_glass", + "side_vertical": "mo_glass:block/cyan_stained_glass_slab_vertical", + "top": "mo_glass:block/cyan_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..34c8bd1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/cyan_stained_glass_slab_double", + "side": "minecraft:block/cyan_stained_glass", + "side_vertical": "mo_glass:block/cyan_stained_glass_slab_vertical", + "top": "mo_glass:block/cyan_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..623e3e1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/cyan_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/cyan_stained_glass_slab_double", + "side": "minecraft:block/cyan_stained_glass", + "side_vertical": "mo_glass:block/cyan_stained_glass_slab_vertical", + "top": "mo_glass:block/cyan_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_double.json new file mode 100644 index 0000000..db11414 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/glass", + "side": "mo_glass:block/glass_slab_double", + "top": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..c9ef911 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/glass_slab_vertical", + "side": "minecraft:block/glass", + "side_vertical": "mo_glass:block/glass_slab_vertical", + "top": "mo_glass:block/glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..3803ed1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/glass_slab_vertical", + "side": "minecraft:block/glass", + "side_vertical": "mo_glass:block/glass_slab_vertical", + "top": "mo_glass:block/glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..3bc1275 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/glass_slab_vertical", + "side": "minecraft:block/glass", + "side_vertical": "mo_glass:block/glass_slab_vertical", + "top": "mo_glass:block/glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..694b67d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/glass_slab_double", + "side": "minecraft:block/glass", + "side_vertical": "mo_glass:block/glass_slab_vertical", + "top": "mo_glass:block/glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..2dd51ec --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/glass_slab_double", + "side": "minecraft:block/glass", + "side_vertical": "mo_glass:block/glass_slab_vertical", + "top": "mo_glass:block/glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..5714334 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/glass_slab_double", + "side": "minecraft:block/glass", + "side_vertical": "mo_glass:block/glass_slab_vertical", + "top": "mo_glass:block/glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_double.json new file mode 100644 index 0000000..d287c67 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/gray_stained_glass", + "side": "mo_glass:block/gray_stained_glass_slab_double", + "top": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..dc30466 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/gray_stained_glass_slab_vertical", + "side": "minecraft:block/gray_stained_glass", + "side_vertical": "mo_glass:block/gray_stained_glass_slab_vertical", + "top": "mo_glass:block/gray_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..8714451 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/gray_stained_glass_slab_vertical", + "side": "minecraft:block/gray_stained_glass", + "side_vertical": "mo_glass:block/gray_stained_glass_slab_vertical", + "top": "mo_glass:block/gray_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..b76641b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/gray_stained_glass_slab_vertical", + "side": "minecraft:block/gray_stained_glass", + "side_vertical": "mo_glass:block/gray_stained_glass_slab_vertical", + "top": "mo_glass:block/gray_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..d9a77ac --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/gray_stained_glass_slab_double", + "side": "minecraft:block/gray_stained_glass", + "side_vertical": "mo_glass:block/gray_stained_glass_slab_vertical", + "top": "mo_glass:block/gray_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..cd0b282 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/gray_stained_glass_slab_double", + "side": "minecraft:block/gray_stained_glass", + "side_vertical": "mo_glass:block/gray_stained_glass_slab_vertical", + "top": "mo_glass:block/gray_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..a5ccbc6 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/gray_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/gray_stained_glass_slab_double", + "side": "minecraft:block/gray_stained_glass", + "side_vertical": "mo_glass:block/gray_stained_glass_slab_vertical", + "top": "mo_glass:block/gray_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_double.json new file mode 100644 index 0000000..7cf2868 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/green_stained_glass", + "side": "mo_glass:block/green_stained_glass_slab_double", + "top": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..0f452ab --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/green_stained_glass_slab_vertical", + "side": "minecraft:block/green_stained_glass", + "side_vertical": "mo_glass:block/green_stained_glass_slab_vertical", + "top": "mo_glass:block/green_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..376f388 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/green_stained_glass_slab_vertical", + "side": "minecraft:block/green_stained_glass", + "side_vertical": "mo_glass:block/green_stained_glass_slab_vertical", + "top": "mo_glass:block/green_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..30d55c0 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/green_stained_glass_slab_vertical", + "side": "minecraft:block/green_stained_glass", + "side_vertical": "mo_glass:block/green_stained_glass_slab_vertical", + "top": "mo_glass:block/green_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..c7ec84f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/green_stained_glass_slab_double", + "side": "minecraft:block/green_stained_glass", + "side_vertical": "mo_glass:block/green_stained_glass_slab_vertical", + "top": "mo_glass:block/green_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..3c8539e --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/green_stained_glass_slab_double", + "side": "minecraft:block/green_stained_glass", + "side_vertical": "mo_glass:block/green_stained_glass_slab_vertical", + "top": "mo_glass:block/green_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..a0081e1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/green_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/green_stained_glass_slab_double", + "side": "minecraft:block/green_stained_glass", + "side_vertical": "mo_glass:block/green_stained_glass_slab_vertical", + "top": "mo_glass:block/green_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_double.json new file mode 100644 index 0000000..a0f8a99 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/light_blue_stained_glass", + "side": "mo_glass:block/light_blue_stained_glass_slab_double", + "top": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..faeec65 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "side": "minecraft:block/light_blue_stained_glass", + "side_vertical": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "top": "mo_glass:block/light_blue_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..a486ec6 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "side": "minecraft:block/light_blue_stained_glass", + "side_vertical": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "top": "mo_glass:block/light_blue_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..45bfaa4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "side": "minecraft:block/light_blue_stained_glass", + "side_vertical": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "top": "mo_glass:block/light_blue_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..5ac31d4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/light_blue_stained_glass_slab_double", + "side": "minecraft:block/light_blue_stained_glass", + "side_vertical": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "top": "mo_glass:block/light_blue_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..6064dee --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/light_blue_stained_glass_slab_double", + "side": "minecraft:block/light_blue_stained_glass", + "side_vertical": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "top": "mo_glass:block/light_blue_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..c14074a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_blue_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/light_blue_stained_glass_slab_double", + "side": "minecraft:block/light_blue_stained_glass", + "side_vertical": "mo_glass:block/light_blue_stained_glass_slab_vertical", + "top": "mo_glass:block/light_blue_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_double.json new file mode 100644 index 0000000..acd3278 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/light_gray_stained_glass", + "side": "mo_glass:block/light_gray_stained_glass_slab_double", + "top": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..9a5b48a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "side": "minecraft:block/light_gray_stained_glass", + "side_vertical": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "top": "mo_glass:block/light_gray_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..876b9a7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "side": "minecraft:block/light_gray_stained_glass", + "side_vertical": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "top": "mo_glass:block/light_gray_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..bbcfdde --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "side": "minecraft:block/light_gray_stained_glass", + "side_vertical": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "top": "mo_glass:block/light_gray_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..b755455 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/light_gray_stained_glass_slab_double", + "side": "minecraft:block/light_gray_stained_glass", + "side_vertical": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "top": "mo_glass:block/light_gray_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..f5a569d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/light_gray_stained_glass_slab_double", + "side": "minecraft:block/light_gray_stained_glass", + "side_vertical": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "top": "mo_glass:block/light_gray_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..d21f719 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/light_gray_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/light_gray_stained_glass_slab_double", + "side": "minecraft:block/light_gray_stained_glass", + "side_vertical": "mo_glass:block/light_gray_stained_glass_slab_vertical", + "top": "mo_glass:block/light_gray_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_double.json new file mode 100644 index 0000000..067e507 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/lime_stained_glass", + "side": "mo_glass:block/lime_stained_glass_slab_double", + "top": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..7180aff --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/lime_stained_glass_slab_vertical", + "side": "minecraft:block/lime_stained_glass", + "side_vertical": "mo_glass:block/lime_stained_glass_slab_vertical", + "top": "mo_glass:block/lime_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..4635936 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/lime_stained_glass_slab_vertical", + "side": "minecraft:block/lime_stained_glass", + "side_vertical": "mo_glass:block/lime_stained_glass_slab_vertical", + "top": "mo_glass:block/lime_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..ae8beac --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/lime_stained_glass_slab_vertical", + "side": "minecraft:block/lime_stained_glass", + "side_vertical": "mo_glass:block/lime_stained_glass_slab_vertical", + "top": "mo_glass:block/lime_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..f6610b8 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/lime_stained_glass_slab_double", + "side": "minecraft:block/lime_stained_glass", + "side_vertical": "mo_glass:block/lime_stained_glass_slab_vertical", + "top": "mo_glass:block/lime_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..9f68522 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/lime_stained_glass_slab_double", + "side": "minecraft:block/lime_stained_glass", + "side_vertical": "mo_glass:block/lime_stained_glass_slab_vertical", + "top": "mo_glass:block/lime_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..ffb7e84 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/lime_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/lime_stained_glass_slab_double", + "side": "minecraft:block/lime_stained_glass", + "side_vertical": "mo_glass:block/lime_stained_glass_slab_vertical", + "top": "mo_glass:block/lime_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_double.json new file mode 100644 index 0000000..0159019 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/magenta_stained_glass", + "side": "mo_glass:block/magenta_stained_glass_slab_double", + "top": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..719f9f7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/magenta_stained_glass_slab_vertical", + "side": "minecraft:block/magenta_stained_glass", + "side_vertical": "mo_glass:block/magenta_stained_glass_slab_vertical", + "top": "mo_glass:block/magenta_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..7e786a9 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/magenta_stained_glass_slab_vertical", + "side": "minecraft:block/magenta_stained_glass", + "side_vertical": "mo_glass:block/magenta_stained_glass_slab_vertical", + "top": "mo_glass:block/magenta_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..35a9724 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/magenta_stained_glass_slab_vertical", + "side": "minecraft:block/magenta_stained_glass", + "side_vertical": "mo_glass:block/magenta_stained_glass_slab_vertical", + "top": "mo_glass:block/magenta_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..e7b5ed2 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/magenta_stained_glass_slab_double", + "side": "minecraft:block/magenta_stained_glass", + "side_vertical": "mo_glass:block/magenta_stained_glass_slab_vertical", + "top": "mo_glass:block/magenta_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..df47a05 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/magenta_stained_glass_slab_double", + "side": "minecraft:block/magenta_stained_glass", + "side_vertical": "mo_glass:block/magenta_stained_glass_slab_vertical", + "top": "mo_glass:block/magenta_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..ab0c7b7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/magenta_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/magenta_stained_glass_slab_double", + "side": "minecraft:block/magenta_stained_glass", + "side_vertical": "mo_glass:block/magenta_stained_glass_slab_vertical", + "top": "mo_glass:block/magenta_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_double.json new file mode 100644 index 0000000..6be2db5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/orange_stained_glass", + "side": "mo_glass:block/orange_stained_glass_slab_double", + "top": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..78948aa --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/orange_stained_glass_slab_vertical", + "side": "minecraft:block/orange_stained_glass", + "side_vertical": "mo_glass:block/orange_stained_glass_slab_vertical", + "top": "mo_glass:block/orange_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..5ecd374 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/orange_stained_glass_slab_vertical", + "side": "minecraft:block/orange_stained_glass", + "side_vertical": "mo_glass:block/orange_stained_glass_slab_vertical", + "top": "mo_glass:block/orange_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..f16fe69 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/orange_stained_glass_slab_vertical", + "side": "minecraft:block/orange_stained_glass", + "side_vertical": "mo_glass:block/orange_stained_glass_slab_vertical", + "top": "mo_glass:block/orange_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..1da75eb --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/orange_stained_glass_slab_double", + "side": "minecraft:block/orange_stained_glass", + "side_vertical": "mo_glass:block/orange_stained_glass_slab_vertical", + "top": "mo_glass:block/orange_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..cca7c0a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/orange_stained_glass_slab_double", + "side": "minecraft:block/orange_stained_glass", + "side_vertical": "mo_glass:block/orange_stained_glass_slab_vertical", + "top": "mo_glass:block/orange_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..f22b5e4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/orange_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/orange_stained_glass_slab_double", + "side": "minecraft:block/orange_stained_glass", + "side_vertical": "mo_glass:block/orange_stained_glass_slab_vertical", + "top": "mo_glass:block/orange_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_double.json new file mode 100644 index 0000000..d475011 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/pink_stained_glass", + "side": "mo_glass:block/pink_stained_glass_slab_double", + "top": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..b7c88a3 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/pink_stained_glass_slab_vertical", + "side": "minecraft:block/pink_stained_glass", + "side_vertical": "mo_glass:block/pink_stained_glass_slab_vertical", + "top": "mo_glass:block/pink_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..c4b835f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/pink_stained_glass_slab_vertical", + "side": "minecraft:block/pink_stained_glass", + "side_vertical": "mo_glass:block/pink_stained_glass_slab_vertical", + "top": "mo_glass:block/pink_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..3ab252d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/pink_stained_glass_slab_vertical", + "side": "minecraft:block/pink_stained_glass", + "side_vertical": "mo_glass:block/pink_stained_glass_slab_vertical", + "top": "mo_glass:block/pink_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..6259086 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/pink_stained_glass_slab_double", + "side": "minecraft:block/pink_stained_glass", + "side_vertical": "mo_glass:block/pink_stained_glass_slab_vertical", + "top": "mo_glass:block/pink_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..e896ee1 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/pink_stained_glass_slab_double", + "side": "minecraft:block/pink_stained_glass", + "side_vertical": "mo_glass:block/pink_stained_glass_slab_vertical", + "top": "mo_glass:block/pink_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..875d3c5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/pink_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/pink_stained_glass_slab_double", + "side": "minecraft:block/pink_stained_glass", + "side_vertical": "mo_glass:block/pink_stained_glass_slab_vertical", + "top": "mo_glass:block/pink_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_double.json new file mode 100644 index 0000000..140815b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/purple_stained_glass", + "side": "mo_glass:block/purple_stained_glass_slab_double", + "top": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..1c9f243 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/purple_stained_glass_slab_vertical", + "side": "minecraft:block/purple_stained_glass", + "side_vertical": "mo_glass:block/purple_stained_glass_slab_vertical", + "top": "mo_glass:block/purple_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..44e1c6f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/purple_stained_glass_slab_vertical", + "side": "minecraft:block/purple_stained_glass", + "side_vertical": "mo_glass:block/purple_stained_glass_slab_vertical", + "top": "mo_glass:block/purple_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..8312e1c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/purple_stained_glass_slab_vertical", + "side": "minecraft:block/purple_stained_glass", + "side_vertical": "mo_glass:block/purple_stained_glass_slab_vertical", + "top": "mo_glass:block/purple_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..514e112 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/purple_stained_glass_slab_double", + "side": "minecraft:block/purple_stained_glass", + "side_vertical": "mo_glass:block/purple_stained_glass_slab_vertical", + "top": "mo_glass:block/purple_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..98fb363 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/purple_stained_glass_slab_double", + "side": "minecraft:block/purple_stained_glass", + "side_vertical": "mo_glass:block/purple_stained_glass_slab_vertical", + "top": "mo_glass:block/purple_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..25f9d7b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/purple_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/purple_stained_glass_slab_double", + "side": "minecraft:block/purple_stained_glass", + "side_vertical": "mo_glass:block/purple_stained_glass_slab_vertical", + "top": "mo_glass:block/purple_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_double.json new file mode 100644 index 0000000..96de605 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/red_stained_glass", + "side": "mo_glass:block/red_stained_glass_slab_double", + "top": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..a2c0b16 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/red_stained_glass_slab_vertical", + "side": "minecraft:block/red_stained_glass", + "side_vertical": "mo_glass:block/red_stained_glass_slab_vertical", + "top": "mo_glass:block/red_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..138fb1b --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/red_stained_glass_slab_vertical", + "side": "minecraft:block/red_stained_glass", + "side_vertical": "mo_glass:block/red_stained_glass_slab_vertical", + "top": "mo_glass:block/red_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..f0cf3e8 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/red_stained_glass_slab_vertical", + "side": "minecraft:block/red_stained_glass", + "side_vertical": "mo_glass:block/red_stained_glass_slab_vertical", + "top": "mo_glass:block/red_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..8ac76d4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/red_stained_glass_slab_double", + "side": "minecraft:block/red_stained_glass", + "side_vertical": "mo_glass:block/red_stained_glass_slab_vertical", + "top": "mo_glass:block/red_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..935ef7f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/red_stained_glass_slab_double", + "side": "minecraft:block/red_stained_glass", + "side_vertical": "mo_glass:block/red_stained_glass_slab_vertical", + "top": "mo_glass:block/red_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..ddd4c4d --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/red_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/red_stained_glass_slab_double", + "side": "minecraft:block/red_stained_glass", + "side_vertical": "mo_glass:block/red_stained_glass_slab_vertical", + "top": "mo_glass:block/red_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_double.json new file mode 100644 index 0000000..737773e --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/tinted_glass", + "side": "mo_glass:block/tinted_glass_slab_double", + "top": "minecraft:block/tinted_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..0dc5ab6 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/tinted_glass_slab_vertical", + "side": "minecraft:block/tinted_glass", + "side_vertical": "mo_glass:block/tinted_glass_slab_vertical", + "top": "mo_glass:block/tinted_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..2c6a046 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/tinted_glass_slab_vertical", + "side": "minecraft:block/tinted_glass", + "side_vertical": "mo_glass:block/tinted_glass_slab_vertical", + "top": "mo_glass:block/tinted_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..852e70e --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/tinted_glass_slab_vertical", + "side": "minecraft:block/tinted_glass", + "side_vertical": "mo_glass:block/tinted_glass_slab_vertical", + "top": "mo_glass:block/tinted_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..db6c7f8 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/tinted_glass_slab_double", + "side": "minecraft:block/tinted_glass", + "side_vertical": "mo_glass:block/tinted_glass_slab_vertical", + "top": "mo_glass:block/tinted_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..6af5e4a --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/tinted_glass_slab_double", + "side": "minecraft:block/tinted_glass", + "side_vertical": "mo_glass:block/tinted_glass_slab_vertical", + "top": "mo_glass:block/tinted_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..d088e97 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/tinted_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/tinted_glass_slab_double", + "side": "minecraft:block/tinted_glass", + "side_vertical": "mo_glass:block/tinted_glass_slab_vertical", + "top": "mo_glass:block/tinted_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_double.json new file mode 100644 index 0000000..abf5526 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/white_stained_glass", + "side": "mo_glass:block/white_stained_glass_slab_double", + "top": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..bbb2b3f --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/white_stained_glass_slab_vertical", + "side": "minecraft:block/white_stained_glass", + "side_vertical": "mo_glass:block/white_stained_glass_slab_vertical", + "top": "mo_glass:block/white_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..e2b5cb4 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/white_stained_glass_slab_vertical", + "side": "minecraft:block/white_stained_glass", + "side_vertical": "mo_glass:block/white_stained_glass_slab_vertical", + "top": "mo_glass:block/white_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..6cd93c5 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/white_stained_glass_slab_vertical", + "side": "minecraft:block/white_stained_glass", + "side_vertical": "mo_glass:block/white_stained_glass_slab_vertical", + "top": "mo_glass:block/white_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..cafc610 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/white_stained_glass_slab_double", + "side": "minecraft:block/white_stained_glass", + "side_vertical": "mo_glass:block/white_stained_glass_slab_vertical", + "top": "mo_glass:block/white_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..de06dbc --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/white_stained_glass_slab_double", + "side": "minecraft:block/white_stained_glass", + "side_vertical": "mo_glass:block/white_stained_glass_slab_vertical", + "top": "mo_glass:block/white_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..7d3bd65 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/white_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/white_stained_glass_slab_double", + "side": "minecraft:block/white_stained_glass", + "side_vertical": "mo_glass:block/white_stained_glass_slab_vertical", + "top": "mo_glass:block/white_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_double.json new file mode 100644 index 0000000..314380c --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_double.json @@ -0,0 +1,8 @@ +{ + "parent": "autoslabs:block/slab_double_template", + "textures": { + "bottom": "minecraft:block/yellow_stained_glass", + "side": "mo_glass:block/yellow_stained_glass_slab_double", + "top": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_bottom.json new file mode 100644 index 0000000..4c84070 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_bottom_template", + "textures": { + "bottom": "mo_glass:block/yellow_stained_glass_slab_vertical", + "side": "minecraft:block/yellow_stained_glass", + "side_vertical": "mo_glass:block/yellow_stained_glass_slab_vertical", + "top": "mo_glass:block/yellow_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_double.json new file mode 100644 index 0000000..f923d8e --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_double_template", + "textures": { + "bottom": "mo_glass:block/yellow_stained_glass_slab_vertical", + "side": "minecraft:block/yellow_stained_glass", + "side_vertical": "mo_glass:block/yellow_stained_glass_slab_vertical", + "top": "mo_glass:block/yellow_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_top.json new file mode 100644 index 0000000..0de0bce --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_east_west_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_east_west_top_template", + "textures": { + "bottom": "mo_glass:block/yellow_stained_glass_slab_vertical", + "side": "minecraft:block/yellow_stained_glass", + "side_vertical": "mo_glass:block/yellow_stained_glass_slab_vertical", + "top": "mo_glass:block/yellow_stained_glass_slab_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_bottom.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_bottom.json new file mode 100644 index 0000000..7935fcb --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_bottom.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_bottom_template", + "textures": { + "bottom": "mo_glass:block/yellow_stained_glass_slab_double", + "side": "minecraft:block/yellow_stained_glass", + "side_vertical": "mo_glass:block/yellow_stained_glass_slab_vertical", + "top": "mo_glass:block/yellow_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_double.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_double.json new file mode 100644 index 0000000..6a69650 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_double.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_double_template", + "textures": { + "bottom": "mo_glass:block/yellow_stained_glass_slab_double", + "side": "minecraft:block/yellow_stained_glass", + "side_vertical": "mo_glass:block/yellow_stained_glass_slab_vertical", + "top": "mo_glass:block/yellow_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_top.json b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_top.json new file mode 100644 index 0000000..a17ed57 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/models/block/yellow_stained_glass_slab_vertical_north_south_top.json @@ -0,0 +1,9 @@ +{ + "parent": "autoslabs:block/slab_vertical_north_south_top_template", + "textures": { + "bottom": "mo_glass:block/yellow_stained_glass_slab_double", + "side": "minecraft:block/yellow_stained_glass", + "side_vertical": "mo_glass:block/yellow_stained_glass_slab_vertical", + "top": "mo_glass:block/yellow_stained_glass_slab_double" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/black_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/black_stained_glass_slab_double.png new file mode 100644 index 0000000..bec84da Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/black_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/black_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/black_stained_glass_slab_vertical.png new file mode 100644 index 0000000..e5036de Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/black_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/blue_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/blue_stained_glass_slab_double.png new file mode 100644 index 0000000..24e6b5d Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/blue_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/blue_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/blue_stained_glass_slab_vertical.png new file mode 100644 index 0000000..9c94b7c Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/blue_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/brown_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/brown_stained_glass_slab_double.png new file mode 100644 index 0000000..323e7a3 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/brown_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/brown_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/brown_stained_glass_slab_vertical.png new file mode 100644 index 0000000..7539fea Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/brown_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/cyan_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/cyan_stained_glass_slab_double.png new file mode 100644 index 0000000..8512f9a Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/cyan_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/cyan_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/cyan_stained_glass_slab_vertical.png new file mode 100644 index 0000000..e41452a Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/cyan_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/glass_slab_double.png new file mode 100644 index 0000000..1a4f705 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/glass_slab_vertical.png new file mode 100644 index 0000000..d45e717 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/gray_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/gray_stained_glass_slab_double.png new file mode 100644 index 0000000..b4b8ad3 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/gray_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/gray_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/gray_stained_glass_slab_vertical.png new file mode 100644 index 0000000..2f32b9d Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/gray_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/green_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/green_stained_glass_slab_double.png new file mode 100644 index 0000000..6f72262 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/green_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/green_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/green_stained_glass_slab_vertical.png new file mode 100644 index 0000000..5a937d8 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/green_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_blue_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_blue_stained_glass_slab_double.png new file mode 100644 index 0000000..2272b64 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_blue_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_blue_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_blue_stained_glass_slab_vertical.png new file mode 100644 index 0000000..466e48d Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_blue_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_gray_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_gray_stained_glass_slab_double.png new file mode 100644 index 0000000..dc02d32 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_gray_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_gray_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_gray_stained_glass_slab_vertical.png new file mode 100644 index 0000000..8f38430 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/light_gray_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/lime_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/lime_stained_glass_slab_double.png new file mode 100644 index 0000000..67e5103 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/lime_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/lime_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/lime_stained_glass_slab_vertical.png new file mode 100644 index 0000000..c07123a Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/lime_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/magenta_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/magenta_stained_glass_slab_double.png new file mode 100644 index 0000000..65ca533 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/magenta_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/magenta_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/magenta_stained_glass_slab_vertical.png new file mode 100644 index 0000000..9bf2b2d Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/magenta_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/orange_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/orange_stained_glass_slab_double.png new file mode 100644 index 0000000..58b15be Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/orange_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/orange_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/orange_stained_glass_slab_vertical.png new file mode 100644 index 0000000..a304fa3 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/orange_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/pink_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/pink_stained_glass_slab_double.png new file mode 100644 index 0000000..d69b130 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/pink_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/pink_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/pink_stained_glass_slab_vertical.png new file mode 100644 index 0000000..9b3f11c Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/pink_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/purple_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/purple_stained_glass_slab_double.png new file mode 100644 index 0000000..145ff53 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/purple_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/purple_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/purple_stained_glass_slab_vertical.png new file mode 100644 index 0000000..6cd7a95 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/purple_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/red_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/red_stained_glass_slab_double.png new file mode 100644 index 0000000..37a4cc7 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/red_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/red_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/red_stained_glass_slab_vertical.png new file mode 100644 index 0000000..267e8a7 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/red_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/tinted_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/tinted_glass_slab_double.png new file mode 100644 index 0000000..bb82dbc Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/tinted_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/tinted_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/tinted_glass_slab_vertical.png new file mode 100644 index 0000000..c583671 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/tinted_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/white_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/white_stained_glass_slab_double.png new file mode 100644 index 0000000..8a52bc4 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/white_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/white_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/white_stained_glass_slab_vertical.png new file mode 100644 index 0000000..2d5033c Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/white_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/yellow_stained_glass_slab_double.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/yellow_stained_glass_slab_double.png new file mode 100644 index 0000000..0174ff0 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/yellow_stained_glass_slab_double.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/yellow_stained_glass_slab_vertical.png b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/yellow_stained_glass_slab_vertical.png new file mode 100644 index 0000000..6f8fd1b Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/assets/mo_glass/textures/block/yellow_stained_glass_slab_vertical.png differ diff --git a/src/main/resources/resourcepacks/distinct_slabs/pack.mcmeta b/src/main/resources/resourcepacks/distinct_slabs/pack.mcmeta new file mode 100644 index 0000000..d3c43a7 --- /dev/null +++ b/src/main/resources/resourcepacks/distinct_slabs/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 15, + "description": "Adds unique slab and vertical slab textures, by Andrew6rant (Andrew Grant)" + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/distinct_slabs/pack.png b/src/main/resources/resourcepacks/distinct_slabs/pack.png new file mode 100644 index 0000000..c4149e7 Binary files /dev/null and b/src/main/resources/resourcepacks/distinct_slabs/pack.png differ