diff --git a/build.gradle b/build.gradle index bd8e4c2..8847e90 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,15 @@ -import java.nio.charset.StandardCharsets - plugins { + id 'fabric-loom' version '1.9-SNAPSHOT' id 'maven-publish' - alias(libs.plugins.quilt.loom) - alias(libs.plugins.minotaur) } -archivesBaseName = project.archives_base_name -version = project.version +version = project.mod_version group = project.maven_group +base { + archivesName = project.archives_base_name +} + repositories { exclusiveContent { forRepository { @@ -22,71 +22,70 @@ repositories { includeGroup "maven.modrinth" } } + + + maven { + url = "https://maven.quiltmc.org/repository/release" + } } dependencies { - minecraft libs.minecraft - mappings "org.quiltmc:quilt-mappings:${libs.versions.quilt.mappings.get()}:intermediary-v2" - modImplementation libs.quilt.loader + // To change the versions see the gradle.properties file + minecraft "com.mojang:minecraft:${project.minecraft_version}" + mappings "org.quiltmc:quilt-mappings:${project.yarn_mappings}:intermediary-v2" + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation libs.quilted.fabric.api + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation include("maven.modrinth:static-data:1.1.0+1.20.4") - modImplementation include("maven.modrinth:suspicious-shapes:1.0.5+1.20.4") } processResources { - inputs.property "version", version + inputs.property "version", project.version - filesMatching('quilt.mod.json') { - expand "version": version + filesMatching("fabric.mod.json") { + expand "version": project.version } } tasks.withType(JavaCompile).configureEach { - it.options.encoding = "UTF-8" it.options.release = 17 } java { + // 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. + withSourcesJar() + sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 - - withSourcesJar() } jar { - from("LICENSE") { - rename { "${it}_${archivesBaseName}" } + from('LICENSE') { + rename { "${it}_${base.archivesName.get()}" } + } + + from('LICENSE-ASSETS.md') { + rename { "${it}_${base.archivesName.get()}" } } } +// configure the maven publication publishing { publications { - mavenJava(MavenPublication) { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name from components.java } } + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. repositories { - - } -} - -modrinth { - token = System.getenv("MODRINTH_TOKEN") - projectId = "arch-ex" - uploadFile = remapJar - additionalFiles = [sourcesJar] - gameVersions = [libs.versions.minecraft.get()] - loaders = ["quilt"] - def ref = System.getenv("GITHUB_REF") - changelog = System.getenv("CHANGELOG") ?: - (ref != null && ref.startsWith("refs/tags/")) ? - "You may view the changelog at https://github.com/woodiertexas/architecture-extensions/releases/tag/${URLEncoder.encode(ref.substring(10), StandardCharsets.UTF_8)}" : - "No changelog is available. Perhaps poke at https://github.com/woodiertexas/architecture-extensions for a changelog?" - - dependencies { - required.project "qsl" + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. } } diff --git a/gradle.properties b/gradle.properties index eafa19f..1f8c119 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,10 +1,17 @@ -# Gradle Properties -org.gradle.jvmargs = -Xmx1G -org.gradle.parallel = true +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx1G +org.gradle.parallel=true + +# Fabric Properties +# check these on https://fabricmc.net/develop +minecraft_version=1.20.1 +yarn_mappings=1.20.1+build.10 +loader_version=0.16.9 # Mod Properties -version = 3.6.0+1.20.4 -maven_group = io.github.debuggyteam -archives_base_name = architecture_extensions +mod_version=4.0.0+mc1.20.1 +maven_group=gay.debuggy +archives_base_name=arch_ex -# Dependencies are managed at gradle/libs.versions.toml +# Dependencies +fabric_version=0.92.3+1.20.1 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml deleted file mode 100644 index 2d83709..0000000 --- a/gradle/libs.versions.toml +++ /dev/null @@ -1,16 +0,0 @@ -[versions] -# The latest versions are available at https://lambdaurora.dev/tools/import_quilt.html -minecraft = "1.20.4" -quilt_mappings = "1.20.4+build.3" -quilt_loader = "0.24.0" -quilted_fabric_api = "9.0.0-alpha.5+0.96.11-1.20.4" - -[libraries] -minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } -quilt_mappings = { module = "org.quiltmc:quilt-mappings", version.ref = "quilt_mappings" } -quilt_loader = { module = "org.quiltmc:quilt-loader", version.ref = "quilt_loader" } -quilted_fabric_api = { module = "org.quiltmc.quilted-fabric-api:quilted-fabric-api", version.ref = "quilted_fabric_api" } - -[plugins] -quilt_loom = { id = "org.quiltmc.loom", version = "1.6.+" } -minotaur = { id = "com.modrinth.minotaur", version = "2.+" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 17655d0..81aa1c0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/ArchExIntegrationContextImpl.java b/src/main/java/io/github/debuggyteam/architecture_extensions/ArchExIntegrationContextImpl.java deleted file mode 100644 index 7e4d906..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/ArchExIntegrationContextImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import java.util.Set; - -import io.github.debuggyteam.architecture_extensions.api.ArchExIntegration; -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.BlockType; - -public class ArchExIntegrationContextImpl implements ArchExIntegration.Context { - private final ArchExIntegration integration; - private final String modId; - - public ArchExIntegrationContextImpl(ArchExIntegration integration, String modId) { - this.integration = integration; - this.modId = modId; - } - - @Override - public void makeArchExBlocks(BlockType type, BlockGroup... groups) { - for (BlockGroup group : groups) { - - - for(BlockGroup.GroupedBlock groupedBlock : group) { - DeferredRegistration.register(modId, group, groupedBlock, Set.of(type), integration::onBlockCreated); - } - } - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/ArchitectureExtensions.java b/src/main/java/io/github/debuggyteam/architecture_extensions/ArchitectureExtensions.java deleted file mode 100644 index 5dc933e..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/ArchitectureExtensions.java +++ /dev/null @@ -1,116 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import io.github.debuggyteam.architecture_extensions.api.ArchExIntegration; -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import io.github.debuggyteam.architecture_extensions.resource.DataGeneration; -import io.github.debuggyteam.architecture_extensions.staticdata.BlockGroupSchema; -import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; -import net.minecraft.item.ItemGroup; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.resource.ResourceType; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -import java.io.IOException; -import java.util.List; -import java.util.Set; - -import org.jetbrains.annotations.NotNull; -import org.quiltmc.loader.api.ModContainer; -import org.quiltmc.loader.api.QuiltLoader; -import org.quiltmc.loader.api.entrypoint.EntrypointContainer; -import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; -import org.quiltmc.qsl.resource.loader.api.InMemoryPack; -import org.quiltmc.qsl.resource.loader.api.ResourceLoader; -import org.quiltmc.qsl.resource.loader.api.PackRegistrationContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -import gay.debuggy.staticdata.api.StaticData; -import gay.debuggy.staticdata.api.StaticDataItem; - -public class ArchitectureExtensions implements ModInitializer, PackRegistrationContext.Callback { - public static final Logger LOGGER = LoggerFactory.getLogger("Architecture Extensions"); - - // This should probably be fine being public and mutable - public static ModContainer MOD_CONTAINER; - public static final RegistryKey<ItemGroup> ITEM_GROUP = RegistryKey.of(RegistryKeys.ITEM_GROUP, id("building_blocks")); - /** - * BlockCreationCallback that adds the created block to the Architecture Extensions "Building Blocks" ItemGroup. - */ - public static final BlockCreationCallback CALLBACK_ADD_TO_ITEM_GROUP = (group, blockType, baseBlock, derivedBlock) -> - ItemGroupUtil.pull(ArchitectureExtensions.ITEM_GROUP, blockType, baseBlock, derivedBlock.asItem()); - - public static final InMemoryPack RESOURCE_PACK = new InMemoryPack.Named("Architecture Extensions"); - - @Override - public void onInitialize(ModContainer mod) { - MOD_CONTAINER = mod; - - Registry.register(Registries.ITEM_GROUP, ITEM_GROUP.getValue(), FabricItemGroup.builder() - .name(Text.translatable("itemGroup.architecture_extensions.building_blocks")) - .icon(() -> PeculiarBlocks.DEBUGGY_BLOCK.asItem().getDefaultStack()) // TODO: Better icon? - .build() - ); - - PeculiarBlocks.register(); - - VanillaIntegration.INSTANCE.integrate(new ArchExIntegrationContextImpl(VanillaIntegration.INSTANCE, mod.metadata().id())); - - //Find and execute entrypoint integrations - for (EntrypointContainer<ArchExIntegration> entrypoint : QuiltLoader.getEntrypointContainers(ArchExIntegration.ENTRYPOINT_KEY, ArchExIntegration.class)) { - try { - entrypoint.getEntrypoint().integrate(new ArchExIntegrationContextImpl(entrypoint.getEntrypoint(), entrypoint.getProvider().metadata().id())); - } catch (Exception ex) { - LOGGER.error("Mod '" + entrypoint.getProvider().metadata().id() + "' threw an exception when trying to integrate with Architecture Extensions"); - } - } - - // Find and register staticdata blocks - List<StaticDataItem> dataRegistrations = StaticData.getDataInDirectory(new Identifier("architecture_extensions", ""), true); - Gson gson = new GsonBuilder().create(); - for(StaticDataItem item : dataRegistrations) { - try { - BlockGroupSchema data = gson.fromJson(item.getAsString(), BlockGroupSchema.class); - - String requiredMod = data.only_if_present; - if (requiredMod != null && !requiredMod.isBlank()) { - // Should only be loaded when the indicated mod is present - if (!QuiltLoader.isModLoaded(requiredMod)) continue; - } - - BlockGroup group = data.createBlockGroup(); - Set<BlockType> blockTypes = data.getBlockTypes(); - for(BlockGroup.GroupedBlock groupedBlock : group) { - DeferredRegistration.register(item.getModId(), group, groupedBlock, blockTypes, CALLBACK_ADD_TO_ITEM_GROUP); - } - } catch (IOException ex) { - LOGGER.warn("There was a problem getting staticdata for mod container '" + item.getModId() + "' with resource id '" + item.getResourceId() + "'.", ex); - } - } - - // Start resolving deferred blocks when their base-blocks appear - DeferredRegistration.init(); - - ItemGroupUtil.push(); - - ResourceLoader.get(ResourceType.SERVER_DATA).getRegisterDefaultPackEvent().register(this); - } - - @Override - public void onRegisterPack(@NotNull PackRegistrationContext context) { - DataGeneration.generate(ResourceType.SERVER_DATA); - context.addResourcePack(RESOURCE_PACK); - } - - public static Identifier id(String path) { - return new Identifier("architecture_extensions", path); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/BlockCreationCallback.java b/src/main/java/io/github/debuggyteam/architecture_extensions/BlockCreationCallback.java deleted file mode 100644 index 3fd9954..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/BlockCreationCallback.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import net.minecraft.block.Block; - -@FunctionalInterface -public interface BlockCreationCallback { - public void onBlockCreated(BlockGroup group, BlockType blockType, Block base, Block created); -} \ No newline at end of file diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/DeferredRegistration.java b/src/main/java/io/github/debuggyteam/architecture_extensions/DeferredRegistration.java deleted file mode 100644 index ddd1d2c..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/DeferredRegistration.java +++ /dev/null @@ -1,100 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import org.jetbrains.annotations.Nullable; -import org.quiltmc.qsl.registry.api.event.RegistryEvents; - -import com.google.common.collect.Multimap; -import com.google.common.collect.MultimapBuilder; - -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import io.github.debuggyteam.architecture_extensions.resource.DataGeneration; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; - - -public class DeferredRegistration { - private static Multimap<Identifier, Entry> deferrals = MultimapBuilder.hashKeys().arrayListValues(2).build(); - - /** - * Called by ArchEx to start resolving deferred registrations. - */ - public static void init() { - RegistryEvents.getEntryAddEvent(Registries.BLOCK).register(ctx -> { - Identifier registeredId = ctx.id(); - Collection<Entry> safeEntries = deferrals.get(registeredId); - Iterator<Entry> i = safeEntries.iterator(); - while(i.hasNext()) { - Entry entry = i.next(); - if (entry.register()) { - i.remove(); - //ArchitectureExtensions.LOGGER.info("Deferred generation: "+entry.modId()+" requested "+entry.getIds()+", which is now complete."); - } else { - ArchitectureExtensions.LOGGER.warn("An unexpected problem ocurred generating "+entry.getIds()+" - this request is still deferred."); - } - } - }); - } - - /** - * Called indirectly by users to register derived blocks. - * @param modId - * @param group - * @param groupedBlock - * @param blockTypes - */ - public static void register(String modId, BlockGroup group, BlockGroup.GroupedBlock groupedBlock, Collection<BlockType> blockTypes, @Nullable BlockCreationCallback callback) { - Entry deferral = new Entry(modId, group, groupedBlock, Set.copyOf(blockTypes), callback); - - if (!deferral.register()) { - //ArchitectureExtensions.LOGGER.info("Deferred generation: " + deferral.modId() + " requested " + deferral.getIds() + " and registration was deferred."); - deferrals.put(groupedBlock.baseBlockId(), deferral); - } else { - //ArchitectureExtensions.LOGGER.info("Deferred generation: " + deferral.modId() + " requested " + deferral.getIds() + " and registration was completed immediately."); - } - } - - - /** - * Called by ArchEx to warn users that we couldn't create blocks that were requested. - */ - public static void assertFinished() { - for(Entry entry : deferrals.values()) { - String sourceString = (entry.modId().equals("file")) ? "A file in the staticdata folder" : "Mod '" + entry.modId() + "'"; - ArchitectureExtensions.LOGGER.warn(sourceString + " requested architecture extensions blocks derived from base block " + entry.groupedBlock.id() + ", but this base block was never registered."); - } - } - - private static record Entry(String modId, BlockGroup group, BlockGroup.GroupedBlock groupedBlock, Set<BlockType> blockTypes, BlockCreationCallback callback) { - public boolean register() { - Block baseBlock = groupedBlock.baseBlock().get(); - if (baseBlock == Blocks.AIR || baseBlock == null) return false; - - for(BlockType blockType : blockTypes) { - BlockType.TypedGroupedBlock created = blockType.register(group, groupedBlock, callback, modId); - DataGeneration.collect(created); - } - - return true; - } - - public Set<String> getIds() { - String modId = this.modId(); - if (modId.equals("file")) modId = ArchitectureExtensions.MOD_CONTAINER.metadata().id(); // If it's a staticdata resource, use our own id - - HashSet<String> result = new HashSet<>(); - for(BlockType bt : blockTypes) { - Identifier id = new Identifier(modId, groupedBlock.id().getPath() + "_" + bt); - result.add(id.toString()); - } - return result; - } - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/ItemGroupUtil.java b/src/main/java/io/github/debuggyteam/architecture_extensions/ItemGroupUtil.java deleted file mode 100644 index 54d57d1..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/ItemGroupUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import java.util.Collection; -import java.util.LinkedHashSet; - -import org.jetbrains.annotations.Nullable; - -import com.google.common.collect.LinkedHashMultimap; -import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; - -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import it.unimi.dsi.fastutil.Pair; -import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; -import net.minecraft.registry.RegistryKey; - -public final class ItemGroupUtil { - private ItemGroupUtil() { } - - private static final Multimap<RegistryKey<ItemGroup>, TypedGroupedItem> ITEM_GROUP_ITEMS = LinkedHashMultimap.create(); - - public static void pull(RegistryKey<ItemGroup> itemGroup, @Nullable BlockType type, @Nullable Block baseBlock, Item item) { - ITEM_GROUP_ITEMS.put(itemGroup, new TypedGroupedItem(type, baseBlock, item)); - } - - // TODO: Maybe try sorting without all these allocations? - private static Collection<Item> typedGroupingSort(Collection<TypedGroupedItem> unsorted) { - final LinkedHashSet<Item> sorted = Sets.newLinkedHashSetWithExpectedSize(unsorted.size()); - - final Multimap<Block, Pair<BlockType, Item>> transit = LinkedHashMultimap.create(); - for (TypedGroupedItem typedGroupedItem : unsorted) { transit.put(typedGroupedItem.baseBlock, Pair.of(typedGroupedItem.type, typedGroupedItem.item)); } - for (Block block : transit.keySet()) { - for (Pair<BlockType, Item> entry : transit.get(block)) { - sorted.add(entry.value()); - } - } - - return sorted; - } - - private static void pushInto(RegistryKey<ItemGroup> itemGroup) { - ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> typedGroupingSort(ITEM_GROUP_ITEMS.get(itemGroup)).forEach(entries::addItem)); - } - - public static void push() { - ITEM_GROUP_ITEMS.keySet().forEach(ItemGroupUtil::pushInto); - } - - private static record TypedGroupedItem(@Nullable BlockType type, @Nullable Block baseBlock, Item item) { } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/PeculiarBlocks.java b/src/main/java/io/github/debuggyteam/architecture_extensions/PeculiarBlocks.java deleted file mode 100644 index c3d1166..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/PeculiarBlocks.java +++ /dev/null @@ -1,33 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import org.quiltmc.qsl.block.extensions.api.QuiltBlockSettings; -import org.quiltmc.qsl.item.setting.api.QuiltItemSettings; - -import net.minecraft.block.Block; -import net.minecraft.block.EndRodBlock; -import net.minecraft.item.BlockItem; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.util.Identifier; - -public class PeculiarBlocks { - public static final Block END_ROD_NUBLESS = new EndRodBlock(QuiltBlockSettings.create().strength(1f).luminance(state -> 14).nonOpaque().requiresTool()); - - public static final Block DEBUGGY_BLOCK = new Block(QuiltBlockSettings.create().strength(1f).sounds(BlockSoundGroup.WOOL).requiresTool()); - - public static final Block FAKE_END_PORTAL_BLOCK = new Block(QuiltBlockSettings.create().strength(1f).sounds(BlockSoundGroup.WOOL).requiresTool()); - - private static <T extends Block> T registerBlock(Identifier id, T block) { - T registeredBlock = Registry.register(Registries.BLOCK, id, block); - var item = Registry.register(Registries.ITEM, id, new BlockItem(block, new QuiltItemSettings())); - ItemGroupUtil.pull(ArchitectureExtensions.ITEM_GROUP, null, null, item); - return registeredBlock; - } - - public static void register() { - registerBlock(ArchitectureExtensions.id("end_rod_nubless"), END_ROD_NUBLESS); - registerBlock(ArchitectureExtensions.id("debuggy_block"), DEBUGGY_BLOCK); - registerBlock(ArchitectureExtensions.id("fake_end_portal_block"), FAKE_END_PORTAL_BLOCK); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/TypedGroupedBlockItem.java b/src/main/java/io/github/debuggyteam/architecture_extensions/TypedGroupedBlockItem.java deleted file mode 100644 index c963b7c..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/TypedGroupedBlockItem.java +++ /dev/null @@ -1,83 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import org.quiltmc.loader.api.minecraft.ClientOnly; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import io.github.debuggyteam.architecture_extensions.blocks.TypedGrouped; -import net.minecraft.block.Block; -import net.minecraft.client.resource.language.I18n; -import net.minecraft.item.BlockItem; -import net.minecraft.item.ItemStack; -import net.minecraft.registry.Registries; -import net.minecraft.text.HoverEvent; -import net.minecraft.text.Text; -import net.minecraft.text.TextColor; -import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; -import net.minecraft.util.Util; - -public class TypedGroupedBlockItem extends BlockItem implements TypedGrouped { - public static final String MISSING_LOCALIZATION_KEY = "architecture_extensions.i18n.missing_key"; - - protected final TypedGroupedBlock typedGroupedBlock; - - public <T extends Block & TypedGrouped> TypedGroupedBlockItem(T block, Settings settings) { - super(block, settings); - typedGroupedBlock = block.getTypedGroupedBlock(); - } - - public TypedGroupedBlockItem(Block block, TypedGroupedBlock typedGrouped, Settings settings) { - super(block, settings); - typedGroupedBlock = typedGrouped; - } - - @ClientOnly - private Text getBaseTranslationKey() { - Identifier blockId = typedGroupedBlock.groupedBlock().id(); - - String ideal = GROUPED_BLOCK_PREFIX + "." + blockId.getNamespace() + "." + blockId.getPath(); - if (I18n.hasTranslation(ideal)) return Text.translatable(ideal); - - String lessIdeal = GROUPED_BLOCK_PREFIX + "." + blockId.getPath(); - if (I18n.hasTranslation(lessIdeal)) return Text.translatable(lessIdeal); - - //This hover never actually displays since the tooltip is already a hover. - //But this keeps the Null tradition alive and prevents the tooltip from becoming gigantic. - /* - return Text.literal("Missing") - .styled(it -> it.withHoverEvent( - HoverEvent.Action.SHOW_TEXT.buildHoverEvent(Text.translatable(MISSING_LOCALIZATION_KEY, Text.literal(ideal))) - ) - .withItalic(true) - .withColor(TextColor.fromFormatting(Formatting.GRAY))); - - */ - - return Text.literal("NULL"); - } - - @Override - @ClientOnly - public Text getName() { - String translationKey = Util.createTranslationKey("block", Registries.ITEM.getId(this)); - if (I18n.hasTranslation(translationKey)) { - return Text.translatable(translationKey); - } else { - Text baseBlock = getBaseTranslationKey(); - String typedGroupedKey = BLOCK_TYPE_PREFIX + "." + typedGroupedBlock.type().toString(); - Text blockType = Text.translatable(typedGroupedKey); - - return Text.translatable(BLOCKTYPE_BLOCK_KEY, baseBlock, blockType); - } - } - - @Override - public Text getName(ItemStack stack) { - return getName(); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return this.typedGroupedBlock; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/VanillaBlockGroups.java b/src/main/java/io/github/debuggyteam/architecture_extensions/VanillaBlockGroups.java deleted file mode 100644 index 9e42c45..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/VanillaBlockGroups.java +++ /dev/null @@ -1,239 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.RecipeConfigurator; -import io.github.debuggyteam.architecture_extensions.api.TextureConfiguration; -import io.github.debuggyteam.architecture_extensions.util.SafeRenderLayer; -import net.minecraft.block.Blocks; -import net.minecraft.block.MapColor; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; - -import java.util.Optional; - -public final class VanillaBlockGroups { - public static final BlockGroup WOOD = BlockGroup.of( - BlockGroup.GroupedBlock.builder(Blocks.OAK_LOG) - .id(new Identifier("oak")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("oak"))) - .usesTablesaw() - .mapColor(MapColor.WOOD) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.SPRUCE_LOG) - .id(new Identifier("spruce")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("spruce"))) - .usesTablesaw() - .mapColor(MapColor.PODZOL) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.BIRCH_LOG) - .id(new Identifier("birch")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("birch"))) - .usesTablesaw() - .mapColor(MapColor.SAND) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.JUNGLE_LOG) - .id(new Identifier("jungle")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("jungle"))) - .usesTablesaw() - .mapColor(MapColor.DIRT) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.ACACIA_LOG) - .id(new Identifier("acacia")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("acacia"))) - .usesTablesaw() - .mapColor(MapColor.ORANGE) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.CHERRY_LOG) - .id(new Identifier("cherry")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("cherry"))) - .usesTablesaw() - .mapColor(MapColor.WHITE_TERRACOTTA) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.DARK_OAK_LOG) - .id(new Identifier("dark_oak")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("dark_oak"))) - .usesTablesaw() - .mapColor(MapColor.BROWN) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.MANGROVE_LOG) - .id(new Identifier("mangrove")) - .textures(TextureConfiguration.WOOD_WITH_LOG.apply(new Identifier("mangrove"))) - .usesTablesaw() - .mapColor(MapColor.RED) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.BAMBOO_PLANKS) - .id(new Identifier("bamboo")) - .textures((type, textureId) -> "minecraft:block/bamboo_planks") - .usesTablesaw() - .mapColor(MapColor.YELLOW) - .build(), - - - BlockGroup.GroupedBlock.builder(Blocks.CRIMSON_STEM) - .id(new Identifier("crimson")) - .textures(TextureConfiguration.WOOD_WITH_STEM.apply(new Identifier("crimson"))) - .usesTablesaw() - .mapColor(MapColor.CRIMSON_STEM) - .build(), - - BlockGroup.GroupedBlock.builder(Blocks.WARPED_STEM) - .id(new Identifier("warped")) - .textures(TextureConfiguration.WOOD_WITH_STEM.apply(new Identifier("warped"))) - .usesTablesaw() - .mapColor(MapColor.WARPED_STEM) - .build() - ); - - public static final BlockGroup STONE = BlockGroup.of( - new BlockGroup.GroupedBlock("stone", Blocks.STONE, (type, textureId) -> "minecraft:block/stone", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("granite", Blocks.GRANITE, (type, textureId) -> "minecraft:block/granite", RecipeConfigurator.STONECUTTER, MapColor.DIRT), - new BlockGroup.GroupedBlock("diorite", Blocks.DIORITE, (type, textureId) -> "minecraft:block/diorite", RecipeConfigurator.STONECUTTER, MapColor.QUARTZ), - new BlockGroup.GroupedBlock("andesite", Blocks.ANDESITE, (type, textureId) -> "minecraft:block/andesite", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("calcite", Blocks.CALCITE, (type, textureId) -> "minecraft:block/calcite", RecipeConfigurator.STONECUTTER, MapColor.WHITE_TERRACOTTA), - new BlockGroup.GroupedBlock("tuff", Blocks.TUFF, (type, textureId) -> "minecraft:block/tuff", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("dripstone", Blocks.DRIPSTONE_BLOCK, (type, textureId) -> "minecraft:block/dripstone_block", RecipeConfigurator.STONECUTTER, MapColor.BROWN_TERRACOTTA), - new BlockGroup.GroupedBlock("obsidian", Blocks.OBSIDIAN, (type, textureId) -> "minecraft:block/obsidian", RecipeConfigurator.STONECUTTER, MapColor.BLACK), - new BlockGroup.GroupedBlock("deepslate", Blocks.DEEPSLATE, (type, textureId) -> "minecraft:block/deepslate", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("sandstone", Blocks.SANDSTONE, TextureConfiguration.TOP_BOTTOM.apply(new Identifier("sandstone")), RecipeConfigurator.STONECUTTER, MapColor.SAND), - new BlockGroup.GroupedBlock("red_sandstone", Blocks.RED_SANDSTONE, TextureConfiguration.TOP_BOTTOM.apply(new Identifier("red_sandstone")), RecipeConfigurator.STONECUTTER, MapColor.ORANGE), - new BlockGroup.GroupedBlock("end_stone", Blocks.END_STONE, (type, textureId) -> "minecraft:block/end_stone", RecipeConfigurator.STONECUTTER, MapColor.BLACK), - new BlockGroup.GroupedBlock("blackstone", Blocks.BLACKSTONE, TextureConfiguration.TOP.apply(new Identifier("blackstone")), RecipeConfigurator.STONECUTTER, MapColor.BLACK), - new BlockGroup.GroupedBlock("raw_iron", Blocks.RAW_IRON_BLOCK, (type, textureId) -> "minecraft:block/raw_iron_block", RecipeConfigurator.STONECUTTER, MapColor.RAW_IRON), - new BlockGroup.GroupedBlock("raw_copper", Blocks.RAW_COPPER_BLOCK, (type, textureId) -> "minecraft:block/raw_copper_block", RecipeConfigurator.STONECUTTER, MapColor.ORANGE), - new BlockGroup.GroupedBlock("raw_gold", Blocks.RAW_GOLD_BLOCK, (type, textureId) -> "minecraft:block/raw_gold_block", RecipeConfigurator.STONECUTTER, MapColor.GOLD) - ); - - public static final BlockGroup AQUATIC_STONE = BlockGroup.of( - new BlockGroup.GroupedBlock("prismarine", Blocks.PRISMARINE, (type, textureId) -> "minecraft:block/prismarine", RecipeConfigurator.STONECUTTER, MapColor.CYAN), - new BlockGroup.GroupedBlock("sea_lantern", Blocks.SEA_LANTERN, (type, textureId) -> "minecraft:block/sea_lantern", RecipeConfigurator.STONECUTTER, MapColor.QUARTZ) - ); - - public static final BlockGroup PROCESSED_STONE = BlockGroup.of( - new BlockGroup.GroupedBlock("cobblestone", Blocks.COBBLESTONE, (type, textureId) -> "minecraft:block/cobblestone", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("smooth_stone", Blocks.SMOOTH_STONE, (type, textureId) -> "minecraft:block/smooth_stone", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("mossy_cobblestone", Blocks.MOSSY_COBBLESTONE, (type, textureId) -> "minecraft:block/mossy_cobblestone", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("cobbled_deepslate", Blocks.COBBLED_DEEPSLATE, (type, textureId) -> "minecraft:block/cobbled_deepslate", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("polished_deepslate", Blocks.POLISHED_DEEPSLATE, (type, textureId) -> "minecraft:block/polished_deepslate", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("smooth_sandstone", Blocks.SMOOTH_SANDSTONE, (type, textureId) -> "minecraft:block/sandstone_top", RecipeConfigurator.STONECUTTER, MapColor.SAND), - new BlockGroup.GroupedBlock("smooth_red_sandstone", Blocks.SMOOTH_RED_SANDSTONE, (type, textureId) -> "minecraft:block/red_sandstone_top", RecipeConfigurator.STONECUTTER, MapColor.ORANGE), - new BlockGroup.GroupedBlock("polished_blackstone", Blocks.POLISHED_BLACKSTONE, (type, textureId) -> "minecraft:block/polished_blackstone", RecipeConfigurator.STONECUTTER, MapColor.BLACK) - ); - - public static final BlockGroup BRICK = BlockGroup.of( - new BlockGroup.GroupedBlock("stone_brick", Blocks.STONE_BRICKS, (type, textureId) -> "minecraft:block/stone_bricks", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("cracked_stone_brick", Blocks.CRACKED_STONE_BRICKS, (type, textureId) -> "minecraft:block/cracked_stone_bricks", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("mossy_stone_brick", Blocks.MOSSY_STONE_BRICKS, (type, textureId) -> "minecraft:block/mossy_stone_bricks", RecipeConfigurator.STONECUTTER, MapColor.STONE), - new BlockGroup.GroupedBlock("deepslate_brick", Blocks.DEEPSLATE_BRICKS, (type, textureId) -> "minecraft:block/deepslate_bricks", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("cracked_deepslate_brick", Blocks.CRACKED_DEEPSLATE_BRICKS, (type, textureId) -> "minecraft:block/cracked_deepslate_bricks", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("brick", Blocks.BRICKS, (type, textureId) -> "minecraft:block/bricks", RecipeConfigurator.STONECUTTER, MapColor.RED), - new BlockGroup.GroupedBlock("mud_brick", Blocks.MUD_BRICKS, (type, textureId) -> "minecraft:block/mud_bricks", RecipeConfigurator.STONECUTTER, MapColor.LIGHT_GRAY_TERRACOTTA), - new BlockGroup.GroupedBlock("prismarine_brick", Blocks.PRISMARINE_BRICKS, (type, textureId) -> "minecraft:block/prismarine_bricks", RecipeConfigurator.STONECUTTER, MapColor.DIAMOND), - new BlockGroup.GroupedBlock("nether_brick", Blocks.NETHER_BRICKS, (type, textureId) -> "minecraft:block/nether_bricks", RecipeConfigurator.STONECUTTER, MapColor.NETHER), - new BlockGroup.GroupedBlock("cracked_nether_brick", Blocks.CRACKED_NETHER_BRICKS, (type, textureId) -> "minecraft:block/cracked_nether_bricks", RecipeConfigurator.STONECUTTER, MapColor.NETHER), - new BlockGroup.GroupedBlock("red_nether_brick", Blocks.RED_NETHER_BRICKS, (type, textureId) -> "minecraft:block/red_nether_bricks", RecipeConfigurator.STONECUTTER, MapColor.NETHER), - new BlockGroup.GroupedBlock("polished_blackstone_brick", Blocks.POLISHED_BLACKSTONE_BRICKS, (type, textureId) -> "minecraft:block/polished_blackstone_bricks", RecipeConfigurator.STONECUTTER, MapColor.BLACK), - new BlockGroup.GroupedBlock("cracked_polished_blackstone_brick", Blocks.CRACKED_POLISHED_BLACKSTONE_BRICKS, (type, textureId) -> "minecraft:block/cracked_polished_blackstone_bricks", RecipeConfigurator.STONECUTTER, MapColor.BLACK), - new BlockGroup.GroupedBlock("end_stone_brick", Blocks.END_STONE_BRICKS, (type, textureId) -> "minecraft:block/end_stone_bricks", RecipeConfigurator.STONECUTTER, MapColor.SAND) - ); - - public static final BlockGroup TILE = BlockGroup.of( - new BlockGroup.GroupedBlock("deepslate_tile", Blocks.DEEPSLATE_TILES, (type, textureId) -> "minecraft:block/deepslate_tiles", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("cracked_deepslate_tile", Blocks.CRACKED_DEEPSLATE_TILES, (type, textureId) -> "minecraft:block/cracked_deepslate_tiles", RecipeConfigurator.STONECUTTER, MapColor.DEEPSLATE), - new BlockGroup.GroupedBlock("dark_prismarine", Blocks.DARK_PRISMARINE, (type, textureId) -> "minecraft:block/dark_prismarine", RecipeConfigurator.STONECUTTER, MapColor.DIAMOND), - new BlockGroup.GroupedBlock("purpur", Blocks.PURPUR_BLOCK, (type, textureId) -> "minecraft:block/purpur_block", RecipeConfigurator.STONECUTTER, MapColor.MAGENTA) - ); - - public static final BlockGroup CRYSTAL = BlockGroup.of( - new BlockGroup.GroupedBlock("quartz", Blocks.QUARTZ_BLOCK, TextureConfiguration.SIDED.apply(new Identifier("quartz_block")), RecipeConfigurator.STONECUTTER, MapColor.QUARTZ), - new BlockGroup.GroupedBlock("smooth_quartz", Blocks.SMOOTH_QUARTZ, (type, textureId) -> "minecraft:block/quartz_block_bottom", RecipeConfigurator.STONECUTTER, MapColor.QUARTZ) - ); - - public static final BlockGroup GLASS = BlockGroup.of( - new BlockGroup.GroupedBlock(new Identifier("glass"), new Identifier("glass"), () -> Blocks.GLASS, (type, textureId) -> "minecraft:block/glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("white_stained_glass"), new Identifier("white_stained_glass"), () -> Blocks.WHITE_STAINED_GLASS, (type, textureId) -> "minecraft:block/white_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("light_gray_stained_glass"), new Identifier("light_gray_stained_glass"), () -> Blocks.LIGHT_GRAY_STAINED_GLASS, (type, textureId) -> "minecraft:block/light_gray_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("gray_stained_glass"), new Identifier("gray_stained_glass"), () -> Blocks.GRAY_STAINED_GLASS, (type, textureId) -> "minecraft:block/gray_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("black_stained_glass"), new Identifier("black_stained_glass"), () -> Blocks.BLACK_STAINED_GLASS, (type, textureId) -> "minecraft:block/black_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("brown_stained_glass"), new Identifier("brown_stained_glass"), () -> Blocks.BROWN_STAINED_GLASS, (type, textureId) -> "minecraft:block/brown_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("red_stained_glass"), new Identifier("red_stained_glass"), () -> Blocks.RED_STAINED_GLASS, (type, textureId) -> "minecraft:block/red_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("orange_stained_glass"), new Identifier("orange_stained_glass"), () -> Blocks.ORANGE_STAINED_GLASS, (type, textureId) -> "minecraft:block/orange_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("yellow_stained_glass"), new Identifier("yellow_stained_glass"), () -> Blocks.YELLOW_STAINED_GLASS, (type, textureId) -> "minecraft:block/yellow_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("lime_stained_glass"), new Identifier("lime_stained_glass"), () -> Blocks.LIME_STAINED_GLASS, (type, textureId) -> "minecraft:block/lime_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("green_stained_glass"), new Identifier("green_stained_glass"), () -> Blocks.GREEN_STAINED_GLASS, (type, textureId) -> "minecraft:block/green_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("cyan_stained_glass"), new Identifier("cyan_stained_glass"), () -> Blocks.CYAN_STAINED_GLASS, (type, textureId) -> "minecraft:block/cyan_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("light_blue_stained_glass"), new Identifier("light_blue_stained_glass"), () -> Blocks.LIGHT_BLUE_STAINED_GLASS, (type, textureId) -> "minecraft:block/light_blue_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("blue_stained_glass"), new Identifier("blue_stained_glass"), () -> Blocks.BLUE_STAINED_GLASS, (type, textureId) -> "minecraft:block/blue_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("purple_stained_glass"), new Identifier("purple_stained_glass"), () -> Blocks.PURPLE_STAINED_GLASS, (type, textureId) -> "minecraft:block/purple_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("magenta_stained_glass"), new Identifier("magenta_stained_glass"), () -> Blocks.MAGENTA_STAINED_GLASS, (type, textureId) -> "minecraft:block/magenta_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT), - new BlockGroup.GroupedBlock(new Identifier("pink_stained_glass"), new Identifier("pink_stained_glass"), () -> Blocks.PINK_STAINED_GLASS, (type, textureId) -> "minecraft:block/pink_stained_glass", RecipeConfigurator.CREATIVE, Optional.ofNullable(DyeColor.WHITE.getMapColor()), SafeRenderLayer.TRANSLUCENT) - ); - - public static final BlockGroup TERRACOTTA = BlockGroup.of( - new BlockGroup.GroupedBlock("terracotta", Blocks.TERRACOTTA, (type, textureId) -> "minecraft:block/terracotta", RecipeConfigurator.STONECUTTER, MapColor.ORANGE), - new BlockGroup.GroupedBlock("white_terracotta", Blocks.WHITE_TERRACOTTA, (type, textureId) -> "minecraft:block/white_terracotta", RecipeConfigurator.STONECUTTER, MapColor.WHITE_TERRACOTTA), - new BlockGroup.GroupedBlock("light_gray_terracotta", Blocks.LIGHT_GRAY_TERRACOTTA, (type, textureId) -> "minecraft:block/light_gray_terracotta", RecipeConfigurator.STONECUTTER, MapColor.LIGHT_GRAY_TERRACOTTA), - new BlockGroup.GroupedBlock("gray_terracotta", Blocks.GRAY_TERRACOTTA, (type, textureId) -> "minecraft:block/gray_terracotta", RecipeConfigurator.STONECUTTER, MapColor.GRAY_TERRACOTTA), - new BlockGroup.GroupedBlock("black_terracotta", Blocks.BLACK_TERRACOTTA, (type, textureId) -> "minecraft:block/black_terracotta", RecipeConfigurator.STONECUTTER, MapColor.BLACK_TERRACOTTA), - new BlockGroup.GroupedBlock("brown_terracotta", Blocks.BROWN_TERRACOTTA, (type, textureId) -> "minecraft:block/brown_terracotta", RecipeConfigurator.STONECUTTER, MapColor.BROWN_TERRACOTTA), - new BlockGroup.GroupedBlock("red_terracotta", Blocks.RED_TERRACOTTA, (type, textureId) -> "minecraft:block/red_terracotta", RecipeConfigurator.STONECUTTER, MapColor.RED_TERRACOTTA), - new BlockGroup.GroupedBlock("orange_terracotta", Blocks.ORANGE_TERRACOTTA, (type, textureId) -> "minecraft:block/orange_terracotta", RecipeConfigurator.STONECUTTER, MapColor.ORANGE_TERRACOTTA), - new BlockGroup.GroupedBlock("yellow_terracotta", Blocks.YELLOW_TERRACOTTA, (type, textureId) -> "minecraft:block/yellow_terracotta", RecipeConfigurator.STONECUTTER, MapColor.YELLOW_TERRACOTTA), - new BlockGroup.GroupedBlock("lime_terracotta", Blocks.LIME_TERRACOTTA, (type, textureId) -> "minecraft:block/lime_terracotta", RecipeConfigurator.STONECUTTER, MapColor.LIME_TERRACOTTA), - new BlockGroup.GroupedBlock("green_terracotta", Blocks.GREEN_TERRACOTTA, (type, textureId) -> "minecraft:block/green_terracotta", RecipeConfigurator.STONECUTTER, MapColor.GREEN_TERRACOTTA), - new BlockGroup.GroupedBlock("cyan_terracotta", Blocks.CYAN_TERRACOTTA, (type, textureId) -> "minecraft:block/cyan_terracotta", RecipeConfigurator.STONECUTTER, MapColor.CYAN_TERRACOTTA), - new BlockGroup.GroupedBlock("light_blue_terracotta", Blocks.LIGHT_BLUE_TERRACOTTA, (type, textureId) -> "minecraft:block/light_blue_terracotta", RecipeConfigurator.STONECUTTER, MapColor.LIGHT_BLUE_TERRACOTTA), - new BlockGroup.GroupedBlock("blue_terracotta", Blocks.BLUE_TERRACOTTA, (type, textureId) -> "minecraft:block/blue_terracotta", RecipeConfigurator.STONECUTTER, MapColor.BLUE_TERRACOTTA), - new BlockGroup.GroupedBlock("purple_terracotta", Blocks.PURPLE_TERRACOTTA, (type, textureId) -> "minecraft:block/purple_terracotta", RecipeConfigurator.STONECUTTER, MapColor.PURPLE_TERRACOTTA), - new BlockGroup.GroupedBlock("magenta_terracotta", Blocks.MAGENTA_TERRACOTTA, (type, textureId) -> "minecraft:block/magenta_terracotta", RecipeConfigurator.STONECUTTER, MapColor.MAGENTA_TERRACOTTA), - new BlockGroup.GroupedBlock("pink_terracotta", Blocks.PINK_TERRACOTTA, (type, textureId) -> "minecraft:block/pink_terracotta", RecipeConfigurator.STONECUTTER, MapColor.PINK_TERRACOTTA) - ); - - public static final BlockGroup CONCRETE = BlockGroup.of( - new BlockGroup.GroupedBlock("white_concrete", Blocks.WHITE_CONCRETE, (type, textureId) -> "minecraft:block/white_concrete", RecipeConfigurator.STONECUTTER, DyeColor.WHITE.getMapColor()), - new BlockGroup.GroupedBlock("light_gray_concrete", Blocks.LIGHT_GRAY_CONCRETE, (type, textureId) -> "minecraft:block/light_gray_concrete", RecipeConfigurator.STONECUTTER, DyeColor.LIGHT_GRAY.getMapColor()), - new BlockGroup.GroupedBlock("gray_concrete", Blocks.GRAY_CONCRETE, (type, textureId) -> "minecraft:block/gray_concrete", RecipeConfigurator.STONECUTTER, DyeColor.GRAY.getMapColor()), - new BlockGroup.GroupedBlock("black_concrete", Blocks.BLACK_CONCRETE, (type, textureId) -> "minecraft:block/black_concrete", RecipeConfigurator.STONECUTTER, DyeColor.BLACK.getMapColor()), - new BlockGroup.GroupedBlock("brown_concrete", Blocks.BROWN_CONCRETE, (type, textureId) -> "minecraft:block/brown_concrete", RecipeConfigurator.STONECUTTER, DyeColor.BROWN.getMapColor()), - new BlockGroup.GroupedBlock("red_concrete", Blocks.RED_CONCRETE, (type, textureId) -> "minecraft:block/red_concrete", RecipeConfigurator.STONECUTTER, DyeColor.RED.getMapColor()), - new BlockGroup.GroupedBlock("orange_concrete", Blocks.ORANGE_CONCRETE, (type, textureId) -> "minecraft:block/orange_concrete", RecipeConfigurator.STONECUTTER, DyeColor.ORANGE.getMapColor()), - new BlockGroup.GroupedBlock("yellow_concrete", Blocks.YELLOW_CONCRETE, (type, textureId) -> "minecraft:block/yellow_concrete", RecipeConfigurator.STONECUTTER, DyeColor.YELLOW.getMapColor()), - new BlockGroup.GroupedBlock("lime_concrete", Blocks.LIME_CONCRETE, (type, textureId) -> "minecraft:block/lime_concrete", RecipeConfigurator.STONECUTTER, DyeColor.LIME.getMapColor()), - new BlockGroup.GroupedBlock("green_concrete", Blocks.GREEN_CONCRETE, (type, textureId) -> "minecraft:block/green_concrete", RecipeConfigurator.STONECUTTER, DyeColor.GREEN.getMapColor()), - new BlockGroup.GroupedBlock("cyan_concrete", Blocks.CYAN_CONCRETE, (type, textureId) -> "minecraft:block/cyan_concrete", RecipeConfigurator.STONECUTTER, DyeColor.CYAN.getMapColor()), - new BlockGroup.GroupedBlock("light_blue_concrete", Blocks.LIGHT_BLUE_CONCRETE, (type, textureId) -> "minecraft:block/light_blue_concrete", RecipeConfigurator.STONECUTTER, DyeColor.LIGHT_BLUE.getMapColor()), - new BlockGroup.GroupedBlock("blue_concrete", Blocks.BLUE_CONCRETE, (type, textureId) -> "minecraft:block/blue_concrete", RecipeConfigurator.STONECUTTER, DyeColor.BLUE.getMapColor()), - new BlockGroup.GroupedBlock("purple_concrete", Blocks.PURPLE_CONCRETE, (type, textureId) -> "minecraft:block/purple_concrete", RecipeConfigurator.STONECUTTER, DyeColor.PURPLE.getMapColor()), - new BlockGroup.GroupedBlock("magenta_concrete", Blocks.MAGENTA_CONCRETE, (type, textureId) -> "minecraft:block/magenta_concrete", RecipeConfigurator.STONECUTTER, DyeColor.MAGENTA.getMapColor()), - new BlockGroup.GroupedBlock("pink_concrete", Blocks.PINK_CONCRETE, (type, textureId) -> "minecraft:block/pink_concrete", RecipeConfigurator.STONECUTTER, DyeColor.PINK.getMapColor()) - ); - - public static final BlockGroup POWDER = BlockGroup.of( - new BlockGroup.GroupedBlock("sand", Blocks.SAND, (type, textureId) -> "minecraft:block/sand", RecipeConfigurator.CREATIVE, MapColor.SAND), - new BlockGroup.GroupedBlock("red_sand", Blocks.RED_SAND, (type, textureId) -> "minecraft:block/red_sand", RecipeConfigurator.CREATIVE, MapColor.ORANGE), - new BlockGroup.GroupedBlock("dirt", Blocks.DIRT, (type, textureId) -> "minecraft:block/dirt", RecipeConfigurator.CREATIVE, MapColor.DIRT), - new BlockGroup.GroupedBlock("white_concrete_powder", Blocks.WHITE_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/white_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.WHITE.getMapColor()), - new BlockGroup.GroupedBlock("light_gray_concrete_powder", Blocks.LIGHT_GRAY_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/light_gray_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.LIGHT_GRAY.getMapColor()), - new BlockGroup.GroupedBlock("gray_concrete_powder", Blocks.GRAY_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/gray_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.GRAY.getMapColor()), - new BlockGroup.GroupedBlock("black_concrete_powder", Blocks.BLACK_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/black_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.BLACK.getMapColor()), - new BlockGroup.GroupedBlock("brown_concrete_powder", Blocks.BROWN_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/brown_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.BROWN.getMapColor()), - new BlockGroup.GroupedBlock("red_concrete_powder", Blocks.RED_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/red_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.RED.getMapColor()), - new BlockGroup.GroupedBlock("orange_concrete_powder", Blocks.ORANGE_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/orange_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.ORANGE.getMapColor()), - new BlockGroup.GroupedBlock("yellow_concrete_powder", Blocks.YELLOW_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/yellow_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.YELLOW.getMapColor()), - new BlockGroup.GroupedBlock("lime_concrete_powder", Blocks.LIME_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/lime_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.LIME.getMapColor()), - new BlockGroup.GroupedBlock("green_concrete_powder", Blocks.GREEN_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/green_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.GREEN.getMapColor()), - new BlockGroup.GroupedBlock("cyan_concrete_powder", Blocks.CYAN_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/cyan_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.CYAN.getMapColor()), - new BlockGroup.GroupedBlock("light_blue_concrete_powder", Blocks.LIGHT_BLUE_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/light_blue_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.LIGHT_BLUE.getMapColor()), - new BlockGroup.GroupedBlock("blue_concrete_powder", Blocks.BLUE_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/blue_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.BLUE.getMapColor()), - new BlockGroup.GroupedBlock("purple_concrete_powder", Blocks.PURPLE_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/purple_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.PURPLE.getMapColor()), - new BlockGroup.GroupedBlock("magenta_concrete_powder", Blocks.MAGENTA_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/magenta_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.MAGENTA.getMapColor()), - new BlockGroup.GroupedBlock("pink_concrete_powder", Blocks.PINK_CONCRETE_POWDER, (type, textureId) -> "minecraft:block/pink_concrete_powder", RecipeConfigurator.CREATIVE, DyeColor.PINK.getMapColor()) - ); -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/VanillaIntegration.java b/src/main/java/io/github/debuggyteam/architecture_extensions/VanillaIntegration.java deleted file mode 100644 index d8fdef7..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/VanillaIntegration.java +++ /dev/null @@ -1,108 +0,0 @@ -package io.github.debuggyteam.architecture_extensions; - -import io.github.debuggyteam.architecture_extensions.api.ArchExIntegration; -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import io.github.debuggyteam.architecture_extensions.api.RecipeConfigurator; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.block.MapColor; - -public class VanillaIntegration implements ArchExIntegration { - public static final VanillaIntegration INSTANCE = new VanillaIntegration(); - - private static final BlockGroup BAMBOO_ROD = BlockGroup.of(new BlockGroup.GroupedBlock("bamboo", Blocks.BAMBOO, (type, textureId) -> "minecraft:block/bamboo_stalk", RecipeConfigurator.simple("bamboo_rod"), MapColor.PLANT)); - private static final BlockGroup COPPER_ROD = BlockGroup.of(new BlockGroup.GroupedBlock("copper", Blocks.LIGHTNING_ROD, (type, textureId) -> "architecture_extensions:block/copper_rod", RecipeConfigurator.simple("copper_rod"), MapColor.ORANGE)); - private static final BlockGroup IRON_ROD = BlockGroup.of(new BlockGroup.GroupedBlock("iron", Blocks.IRON_BARS, (type, textureId) -> "minecraft:block/iron_bars", RecipeConfigurator.simple("iron_rod"))); - private static final BlockGroup IRON_H_BEAM = BlockGroup.of(new BlockGroup.GroupedBlock("iron", Blocks.IRON_BLOCK, (type, textureId) -> "architecture_extensions:block/iron_tube_metal", RecipeConfigurator.CRAFTING, MapColor.METAL)); - - - private static final BlockGroup TUBE_METAL = BlockGroup.of( - new BlockGroup.GroupedBlock("iron", Blocks.IRON_BLOCK, (type, textureId) -> { - return switch (textureId) { - case "texture_up" -> "architecture_extensions:block/iron_tube_metal_top"; - default -> "architecture_extensions:block/iron_tube_metal"; - }; - }, RecipeConfigurator.CRAFTING, MapColor.METAL), - new BlockGroup.GroupedBlock("copper", Blocks.COPPER_BLOCK, (type, textureId) -> { - return switch (textureId) { - case "texture_up" -> "architecture_extensions:block/copper_tube_metal_top"; - default -> "architecture_extensions:block/copper_tube_metal"; - }; - }, RecipeConfigurator.CRAFTING, MapColor.METAL) - ); - - @Override - public void integrate(Context ctx) { - ctx.makeArchExBlocks(BlockType.ARCH, - VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, VanillaBlockGroups.PROCESSED_STONE, - VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.CURVE, - VanillaBlockGroups.WOOD, VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, - VanillaBlockGroups.PROCESSED_STONE, VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, - VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.WALL_COLUMN, - VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, VanillaBlockGroups.PROCESSED_STONE, - VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.ROOF, - VanillaBlockGroups.STONE, VanillaBlockGroups.PROCESSED_STONE, - VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.WALL_POST, - VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, VanillaBlockGroups.PROCESSED_STONE, - VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.FACADE, - VanillaBlockGroups.WOOD, VanillaBlockGroups.STONE, - VanillaBlockGroups.AQUATIC_STONE, VanillaBlockGroups.PROCESSED_STONE, - VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, VanillaBlockGroups.CRYSTAL, - VanillaBlockGroups.TERRACOTTA, VanillaBlockGroups.CONCRETE, VanillaBlockGroups.GLASS, - VanillaBlockGroups.POWDER - ); - - ctx.makeArchExBlocks(BlockType.ROUND_FENCE_POST, - VanillaBlockGroups.WOOD, VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, - VanillaBlockGroups.PROCESSED_STONE, VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, - VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.ROUND_ARCH, - VanillaBlockGroups.WOOD, VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, - VanillaBlockGroups.PROCESSED_STONE, VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, - VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.OCTAGONAL_COLUMN, - VanillaBlockGroups.WOOD, VanillaBlockGroups.STONE, VanillaBlockGroups.AQUATIC_STONE, - VanillaBlockGroups.PROCESSED_STONE, VanillaBlockGroups.BRICK, VanillaBlockGroups.TILE, - VanillaBlockGroups.CRYSTAL - ); - - ctx.makeArchExBlocks(BlockType.BEAM, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.FENCE_POST, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.JOIST, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.CROWN_MOLDING, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.POST_CAP, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.POST_LANTERN, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.ROD, BAMBOO_ROD, COPPER_ROD, IRON_ROD); - ctx.makeArchExBlocks(BlockType.LATTICE, VanillaBlockGroups.WOOD); - ctx.makeArchExBlocks(BlockType.TRANSOM, VanillaBlockGroups.WOOD); - - ctx.makeArchExBlocks(BlockType.TUBE_METAL, TUBE_METAL); - ctx.makeArchExBlocks(BlockType.I_BEAM, TUBE_METAL); - ctx.makeArchExBlocks(BlockType.H_BEAM, IRON_H_BEAM); - } - - @Override - public void onBlockCreated(BlockGroup group, BlockType blockType, Block baseBlock, Block block) { - ItemGroupUtil.pull(ArchitectureExtensions.ITEM_GROUP, blockType, baseBlock, block.asItem()); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/api/ArchExIntegration.java b/src/main/java/io/github/debuggyteam/architecture_extensions/api/ArchExIntegration.java deleted file mode 100644 index 81bc943..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/api/ArchExIntegration.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.api; - -import org.jetbrains.annotations.ApiStatus; - -import net.minecraft.block.Block; - -public interface ArchExIntegration { - final String ENTRYPOINT_KEY = "architecture_extensions"; - - /** - * Called by Architecture Extensions when it's ready to create blocks on behalf of a mod. - * @param ctx A Context object which can honor block creation requests - */ - void integrate(Context ctx); - - /** - * Called by Architecture Extensions when it creates a block that was requested by this integration class. You can - * use this function to add the new block to an ItemGroup, generate additional data, or emit diagnostic information. - * @param group The group the newly created block is in - * @param blockType The type of block that was created - * @param base The "base" block defining the material that the new block was made from - * @param created The block that was created - */ - void onBlockCreated(BlockGroup group, BlockType blockType, Block base, Block created); - - /** - * Holds commands that Architecture Extensions makes available to mods for integration. At this point only block - * creation is supported. - */ - @ApiStatus.NonExtendable - interface Context { - /** - * Creates blocks of a particular BlockType and one or more BlockGroups - * @param type the type of block, for example BlockType.FENCE_POST - * @param groups one or more BlockGroups to create blocks for. - */ - void makeArchExBlocks(BlockType type, BlockGroup... groups); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/api/BlockGroup.java b/src/main/java/io/github/debuggyteam/architecture_extensions/api/BlockGroup.java deleted file mode 100644 index ce802be..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/api/BlockGroup.java +++ /dev/null @@ -1,217 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.api; - -import java.lang.reflect.Field; -import java.util.Iterator; -import java.util.Optional; -import java.util.Set; -import java.util.function.Supplier; - -import com.google.common.collect.Sets; - -import io.github.debuggyteam.architecture_extensions.util.SafeRenderLayer; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.block.MapColor; -import net.minecraft.registry.Registries; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; - -public final class BlockGroup implements Iterable<BlockGroup.GroupedBlock> { - private final Set<BlockGroup.GroupedBlock> groupedBlocks; - - private BlockGroup(Set<BlockGroup.GroupedBlock> groupedBlocks) { - this.groupedBlocks = groupedBlocks; - } - - public static BlockGroup of(BlockGroup.GroupedBlock... groupedBlocks) { - if (groupedBlocks.length == 0) throw new IllegalArgumentException("BlockGroup.of requires at least one grouped block."); - - // Use a linked hash set to make sure the ordering of blocks stays the same between launches for the item group - final Set<BlockGroup.GroupedBlock> set = Sets.newLinkedHashSet(); - for (BlockGroup.GroupedBlock groupedBlock : groupedBlocks) { set.add(groupedBlock); }; - return new BlockGroup(set); - } - - @Override - public Iterator<BlockGroup.GroupedBlock> iterator() { - return groupedBlocks.iterator(); - } - - public record GroupedBlock(Identifier id, Identifier baseBlockId, Supplier<Block> baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator, Optional<MapColor> mapColor, SafeRenderLayer renderLayer) { - public GroupedBlock(Identifier id, Identifier baseBlockId, Supplier<Block> baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator, Optional<MapColor> mapColor) { - this(id, baseBlockId, baseBlock, textureConfiguration, recipeConfigurator, mapColor, SafeRenderLayer.SOLID); - } - - public GroupedBlock(String id, Identifier baseBlockId, Supplier<Block> baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator, MapColor mapColor) { - this(new Identifier(id), baseBlockId, baseBlock, textureConfiguration, recipeConfigurator, Optional.of(mapColor)); - } - - public GroupedBlock(String id, Block baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator, MapColor mapColor) { - this(new Identifier(id), Registries.BLOCK.getId(baseBlock), ()->baseBlock, textureConfiguration, recipeConfigurator, Optional.of(mapColor)); - } - - public GroupedBlock(Identifier id, Identifier baseBlockId, Supplier<Block> baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator, MapColor mapColor) { - this(id, baseBlockId, baseBlock, textureConfiguration, recipeConfigurator, Optional.of(mapColor)); - } - - public GroupedBlock(String id, Identifier baseBlockId, Supplier<Block> baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator) { - this(new Identifier(id), baseBlockId, baseBlock, textureConfiguration, recipeConfigurator, Optional.empty()); - } - - public GroupedBlock(String id, Block baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator) { - this(new Identifier(id), Registries.BLOCK.getId(baseBlock), ()->baseBlock, textureConfiguration, recipeConfigurator, Optional.empty()); - } - - public GroupedBlock(Identifier id, Identifier baseBlockId, Supplier<Block> baseBlock, TextureConfiguration textureConfiguration, RecipeConfigurator recipeConfigurator) { - this(id, baseBlockId, baseBlock, textureConfiguration, recipeConfigurator, Optional.empty()); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(Identifier id) { - return new Builder(id); - } - - public static Builder builder(Block block) { - return new Builder(block); - } - - public static class Builder { - private Identifier id; - private Identifier baseBlockId; - private Supplier<Block> baseBlock; - private TextureConfiguration textures; - private RecipeConfigurator recipes = RecipeConfigurator.CREATIVE; - private Optional<MapColor> mapColor = Optional.empty(); - private SafeRenderLayer renderLayer = SafeRenderLayer.SOLID; - - public Builder() {} - - public Builder(Identifier id) { - this.id = id; - this.baseBlockId = id; - Block maybeBlock = Registries.BLOCK.get(id); - if (maybeBlock != Blocks.AIR) baseBlock = () -> maybeBlock; - } - - public Builder(Block block) { - baseBlock = () -> block; - this.id = Registries.BLOCK.getId(block); - this.baseBlockId = this.id; - } - - public Builder id(Identifier id) { - this.id = id; - return this; - } - - public Builder baseBlockId(Identifier id) { - this.baseBlockId = id; - return this; - } - - public Builder baseBlock(Block block) { - this.baseBlock = () -> block; - return this; - } - - public Builder baseBlock(Supplier<Block> blockSupplier) { - this.baseBlock = blockSupplier; - return this; - } - - public Builder textures(String singleTexture) { - this.textures = TextureConfiguration.create( - (it) -> singleTexture, - (it) -> singleTexture, - (it) -> singleTexture, - (it) -> singleTexture); - return this; - } - - public Builder textures(TextureConfiguration config) { - this.textures = config; - return this; - } - - public Builder creativeOnly() { - this.recipes = RecipeConfigurator.CREATIVE; - return this; - } - - public Builder usesTablesaw() { - this.recipes = RecipeConfigurator.SAWING; - return this; - } - - public Builder usesStonecutter() { - this.recipes = RecipeConfigurator.STONECUTTER; - return this; - } - - public Builder usesCraftingTable() { - this.recipes = RecipeConfigurator.CRAFTING; - return this; - } - - public Builder recipes(RecipeConfigurator config) { - this.recipes = config; - return this; - } - - public Builder mapColor(DyeColor color) { - this.mapColor = Optional.of(color.getMapColor()); - return this; - } - - public Builder mapColor(MapColor color) { - this.mapColor = Optional.of(color); - return this; - } - - public Builder noMapColor() { - this.mapColor = Optional.empty(); - return this; - } - - public Builder renderSolid() { - this.renderLayer = SafeRenderLayer.SOLID; - return this; - } - - public Builder renderCutout() { - this.renderLayer = SafeRenderLayer.CUTOUT; - return this; - } - - public Builder renderTranslucent() { - this.renderLayer = SafeRenderLayer.TRANSLUCENT; - return this; - } - - public Builder renderLayer(SafeRenderLayer layer) { - this.renderLayer = layer; - return this; - } - - public GroupedBlock build() { - checkFilled(); - return new GroupedBlock(id, baseBlockId, baseBlock, textures, recipes, mapColor, renderLayer); - } - - private void checkFilled() { - for(Field f : Builder.class.getDeclaredFields()) { - try { - if (f.get(this) == null) { - throw new IllegalArgumentException("Field '"+f.getName()+" must be set for this GroupedBlock.Builder to be complete."); - } - } catch (IllegalArgumentException | IllegalAccessException e) { - //Should be no access problems from here - } - } - } - } - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/api/BlockType.java b/src/main/java/io/github/debuggyteam/architecture_extensions/api/BlockType.java deleted file mode 100644 index 9ee496b..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/api/BlockType.java +++ /dev/null @@ -1,126 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.api; - -import java.util.Locale; - -import io.github.debuggyteam.architecture_extensions.blocks.RoundArchBlock; -import io.github.debuggyteam.architecture_extensions.blocks.CurveBlock; -import io.github.debuggyteam.architecture_extensions.blocks.FacadeBlock; -import io.github.debuggyteam.architecture_extensions.blocks.IBeamBlock; -import io.github.debuggyteam.architecture_extensions.blocks.LatticeBlock; -import io.github.debuggyteam.architecture_extensions.blocks.OctagonalColumnBlock; -import io.github.debuggyteam.architecture_extensions.blocks.RoundFencePostBlock; -import io.github.debuggyteam.architecture_extensions.blocks.TransomBlock; -import io.github.debuggyteam.architecture_extensions.blocks.TubeSteelBlock; -import io.github.debuggyteam.architecture_extensions.util.SafeRenderLayer; - -import org.apache.commons.lang3.function.TriFunction; -import org.quiltmc.qsl.block.extensions.api.QuiltBlockSettings; -import org.quiltmc.qsl.item.setting.api.QuiltItemSettings; - -import io.github.debuggyteam.architecture_extensions.ArchitectureExtensions; -import io.github.debuggyteam.architecture_extensions.BlockCreationCallback; -import io.github.debuggyteam.architecture_extensions.TypedGroupedBlockItem; -import io.github.debuggyteam.architecture_extensions.blocks.ArchBlock; -import io.github.debuggyteam.architecture_extensions.blocks.BeamBlock; -import io.github.debuggyteam.architecture_extensions.blocks.WallColumnBlock; -import io.github.debuggyteam.architecture_extensions.blocks.FencePostBlock; -import io.github.debuggyteam.architecture_extensions.blocks.JoistBlock; -import io.github.debuggyteam.architecture_extensions.blocks.CrownMoldingBlock; -import io.github.debuggyteam.architecture_extensions.blocks.PostCapBlock; -import io.github.debuggyteam.architecture_extensions.blocks.PostLanternBlock; -import io.github.debuggyteam.architecture_extensions.blocks.ArchExRodBlock; -import io.github.debuggyteam.architecture_extensions.blocks.RoofBlock; -import io.github.debuggyteam.architecture_extensions.blocks.WallPostBlock; -import net.fabricmc.fabric.api.registry.LandPathNodeTypesRegistry; -import net.minecraft.block.Block; -import net.minecraft.entity.ai.pathing.PathNodeType; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - -public enum BlockType { - ARCH (ArchBlock::new, 2.5f, variantsOf("", "inner", "outer"), SafeRenderLayer.SOLID), - BEAM (BeamBlock::new, 1.5f), - CURVE (CurveBlock::new, 1.5f), - H_BEAM (BeamBlock::new, 8.0f), - WALL_COLUMN (WallColumnBlock::new, 2.5f, variantsOf("", "cap"), SafeRenderLayer.SOLID), - FENCE_POST (FencePostBlock::new, 1.5f), - JOIST (JoistBlock::new, 1.5f), - CROWN_MOLDING(CrownMoldingBlock::new,1.5f, variantsOf("", "inner", "outer"), SafeRenderLayer.SOLID), - POST_CAP (PostCapBlock::new, 1.5f), - POST_LANTERN (PostLanternBlock::new, 1.5f, variantsOf("", "hanging"), SafeRenderLayer.SOLID), - ROD (ArchExRodBlock::new, 1.0f), - ROOF (RoofBlock::new, 2.5f, variantsOf("", "inner", "outer"), SafeRenderLayer.SOLID), - WALL_POST (WallPostBlock::new, 2.5f), - LATTICE (LatticeBlock::new, 1.5f), - FACADE (FacadeBlock::new, 1.5f), - TUBE_METAL (TubeSteelBlock::new, 8.0f), - I_BEAM (IBeamBlock::new, 8.0f), - TRANSOM (TransomBlock::new, 1.5f, noVariants(), SafeRenderLayer.TRANSLUCENT), - OCTAGONAL_COLUMN(OctagonalColumnBlock::new, 1.5f, variantsOf("", "cap", "double_cap"), SafeRenderLayer.SOLID), - ROUND_ARCH (RoundArchBlock::new, 1.5f), - ROUND_FENCE_POST(RoundFencePostBlock::new, 1.5f); - - private final TriFunction<Block, QuiltBlockSettings, TypedGroupedBlock, Block> creator; - private final float strength; - private final String[] variants; - private final SafeRenderLayer renderLayer; - - BlockType(TriFunction<Block, QuiltBlockSettings, TypedGroupedBlock, Block> creator, float strength, String[] variants, SafeRenderLayer renderLayer) { - this.creator = creator; - this.strength = strength; - this.variants = variants; - this.renderLayer = renderLayer; - } - - /** - * Makes a BlockType with no variants and solid RenderLayer - * @see #BlockType(TriFunction, float, String[], SafeRenderLayer) - */ - BlockType(TriFunction<Block, QuiltBlockSettings, TypedGroupedBlock, Block> creator, float strength) { - this(creator, strength, noVariants(), SafeRenderLayer.SOLID); - } - - public String[] variants() { - return variants; - } - - public SafeRenderLayer renderLayer() { - return renderLayer; - } - - @Override - public String toString() { - return name().toLowerCase(Locale.ROOT); - } - - public TypedGroupedBlock register(BlockGroup group, BlockGroup.GroupedBlock groupedBlock, BlockCreationCallback callback, String modId) { - // Note: the mod id parameter isn't used here by purpose, that parameter is there so we can easily debug where registration is coming from. - Identifier id = new Identifier(ArchitectureExtensions.MOD_CONTAINER.metadata().id(), String.format("%s/%s", groupedBlock.id().getNamespace(), groupedBlock.id().getPath() + "_" + this)); - var baseBlock = groupedBlock.baseBlock().get(); - - var blockSettings = QuiltBlockSettings.copyOf(baseBlock).strength(strength); - groupedBlock.mapColor().map(blockSettings::mapColor); - var typedGroupedBlock = new TypedGroupedBlock(this, groupedBlock, id); - var block = Registry.register(Registries.BLOCK, id, creator.apply(baseBlock, blockSettings, typedGroupedBlock)); - - Registry.register(Registries.ITEM, id, new TypedGroupedBlockItem(block, typedGroupedBlock, new QuiltItemSettings())); - - // So mobs don't get stuck on arch-ex blocks, and lag the server trying to path-find through them - // Required since that is the default for non full blocks - LandPathNodeTypesRegistry.register(block, PathNodeType.BLOCKED, PathNodeType.BLOCKED); - if (callback != null) callback.onBlockCreated(group, this, baseBlock, block); - - return typedGroupedBlock; - } - - private static final String[] noVariants() { - return new String[] {""}; - } - - private static final String[] variantsOf(String... variants) { - return variants; - } - - public static record TypedGroupedBlock(BlockType type, BlockGroup.GroupedBlock groupedBlock, Identifier id) {} -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/api/MetaBlockType.java b/src/main/java/io/github/debuggyteam/architecture_extensions/api/MetaBlockType.java deleted file mode 100644 index 6636098..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/api/MetaBlockType.java +++ /dev/null @@ -1,49 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.api; - -public enum MetaBlockType { - WOOD( - BlockType.FACADE, BlockType.ROUND_FENCE_POST, BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN, - BlockType.BEAM, BlockType.FENCE_POST, BlockType.JOIST, BlockType.CROWN_MOLDING, BlockType.POST_CAP, - BlockType.POST_LANTERN, BlockType.LATTICE, BlockType.TRANSOM - ), - STONE( - BlockType.ARCH, BlockType.WALL_COLUMN, BlockType.ROOF, BlockType.WALL_POST, BlockType.FACADE, - BlockType.ROUND_FENCE_POST, BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN - ), - AQUATIC_STONE( - BlockType.ARCH, BlockType.WALL_COLUMN, BlockType.WALL_POST, BlockType.FACADE, BlockType.ROUND_FENCE_POST, - BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN - ), - PROCESSED_STONE( - BlockType.ARCH, BlockType.WALL_COLUMN, BlockType.ROOF, BlockType.WALL_POST, BlockType.FACADE, - BlockType.ROUND_FENCE_POST, BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN - ), - BRICK( - BlockType.ARCH, BlockType.WALL_COLUMN, BlockType.ROOF, BlockType.WALL_POST, BlockType.FACADE, - BlockType.ROUND_FENCE_POST, BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN - ), - TILE( - BlockType.ARCH, BlockType.WALL_COLUMN, BlockType.ROOF, BlockType.WALL_POST, BlockType.FACADE, - BlockType.ROUND_FENCE_POST, BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN - ), - CRYSTAL( - BlockType.ARCH, BlockType.WALL_COLUMN, BlockType.ROOF, BlockType.WALL_POST, BlockType.FACADE, - BlockType.ROUND_FENCE_POST, BlockType.ROUND_ARCH, BlockType.CURVE, BlockType.OCTAGONAL_COLUMN - ), - TERRACOTTA(BlockType.FACADE), - CONCRETE(BlockType.FACADE), - METAL( - BlockType.ROD, BlockType.FACADE, BlockType.I_BEAM, BlockType.TUBE_METAL - ) - ; - - private final BlockType[] blockTypes; - - MetaBlockType(BlockType...blockTypes) { - this.blockTypes = blockTypes; - } - - public BlockType[] blockTypes() { - return this.blockTypes; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/api/RecipeConfigurator.java b/src/main/java/io/github/debuggyteam/architecture_extensions/api/RecipeConfigurator.java deleted file mode 100644 index 8b9f02f..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/api/RecipeConfigurator.java +++ /dev/null @@ -1,75 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.api; - -import java.util.function.BiConsumer; -import java.util.function.Consumer; - -import org.quiltmc.loader.api.QuiltLoader; - -public interface RecipeConfigurator extends BiConsumer<BlockType, Consumer<RecipeConfigurator.RecipeTemplate>> { - static RecipeConfigurator simple(String id) { - return (type, templateConsumer) -> templateConsumer.accept(new RecipeTemplate(id, true, false)); - } - - static final RecipeConfigurator STONECUTTER = (type, templateConsumer) -> { - switch (type) { - case FENCE_POST: - RecipeConfigurator.CRAFTING.accept(type, templateConsumer); - templateConsumer.accept(new RecipeTemplate("stonecutting", false)); - break; - case WALL_POST: - RecipeConfigurator.CRAFTING.accept(type, templateConsumer); - templateConsumer.accept(new RecipeTemplate("stonecutting", false)); - break; - default: - templateConsumer.accept(new RecipeTemplate("stonecutting", false)); - break; - } - }; - - static final RecipeConfigurator SAWING = (type, templateConsumer) -> { - if (!QuiltLoader.isModLoaded("tablesaw")) { - RecipeConfigurator.STONECUTTER.accept(type, templateConsumer); - return; - } - - switch (type) { - case FENCE_POST: - RecipeConfigurator.CRAFTING.accept(type, templateConsumer); - default: - templateConsumer.accept(new RecipeTemplate("sawing", true)); - break; - } - }; - - static final RecipeConfigurator CRAFTING = (type, templateConsumer) -> { - switch (type) { - case FENCE_POST: - templateConsumer.accept(new RecipeTemplate("fence_to_post", false)); - templateConsumer.accept(new RecipeTemplate("post_to_fence", false)); - break; - case WALL_POST: - templateConsumer.accept(new RecipeTemplate("wall_to_post", false)); - templateConsumer.accept(new RecipeTemplate("post_to_wall", false)); - break; - case H_BEAM: - templateConsumer.accept(new RecipeTemplate("h_beam", false)); - break; - case I_BEAM: - templateConsumer.accept(new RecipeTemplate("i_beam", false)); - break; - case TUBE_METAL: - templateConsumer.accept(new RecipeTemplate("tube_metal", false)); - break; - default: - break; - } - }; - - static final RecipeConfigurator CREATIVE = (type, templateConsumer) -> {}; - - static record RecipeTemplate(String id, boolean simple, boolean tablesaw) { - RecipeTemplate(String id, boolean tablesaw) { - this(id, false, tablesaw); - } - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/api/TextureConfiguration.java b/src/main/java/io/github/debuggyteam/architecture_extensions/api/TextureConfiguration.java deleted file mode 100644 index 58f5205..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/api/TextureConfiguration.java +++ /dev/null @@ -1,131 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.api; - -import java.util.function.BiFunction; -import java.util.function.Function; - -import net.minecraft.util.Identifier; - -public interface TextureConfiguration extends BiFunction<BlockType, String, String> { - public static final String[] TEXTURE_IDS = new String[]{"texture", "texture_side", "texture_up", "texture_down"}; - - static final Function<Identifier, TextureConfiguration> WOOD_WITH_LOG = woodId -> create( - blockType -> { - return switch (blockType) { - case JOIST, OCTAGONAL_COLUMN -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_log").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - }, - blockType -> { - return switch (blockType) { - case BEAM -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_log").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - }, - blockType -> { - return switch (blockType) { - case BEAM -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_log_top").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - }, - blockType -> { - return switch (blockType) { - case BEAM -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_log_top").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - } - ); - - static final Function<Identifier, TextureConfiguration> WOOD_WITH_STEM = woodId -> create( - blockType -> { - return switch (blockType) { - case JOIST, OCTAGONAL_COLUMN -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_stem").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - }, - blockType -> { - return switch (blockType) { - case BEAM -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_stem").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - }, - blockType -> { - return switch (blockType) { - case BEAM -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_stem_top").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - }, - blockType -> { - return switch (blockType) { - case BEAM -> new Identifier(woodId.getNamespace(), "block/" + "stripped_" + woodId.getPath() + "_stem_top").toString(); - default -> new Identifier(woodId.getNamespace(), "block/" + woodId.getPath() + "_planks").toString(); - }; - } - ); - - static final Function<Identifier, TextureConfiguration> SIDED = id -> create( - blockType -> new Identifier(id.getNamespace(), "block/" + id.getPath() + "_top").toString(), - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_side").toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_top").toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_bottom").toString(); - } - ); - - static final Function<Identifier, TextureConfiguration> TOP = id -> create( - blockType -> new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(), - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_top").toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(); - } - ); - - static final Function<Identifier, TextureConfiguration> END = id -> create( - blockType -> new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(), - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_end").toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(); - } - ); - - static final Function<Identifier, TextureConfiguration> TOP_BOTTOM = id -> create( - blockType -> new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(), - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath()).toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_top").toString(); - }, - blockType -> { - return new Identifier(id.getNamespace(), "block/" + id.getPath() + "_bottom").toString(); - } - ); - - static final Function<Identifier, TextureConfiguration> ALL = it -> (type, textureId) -> new Identifier(it.getNamespace(), "block/" + it.getPath()).toString(); - - static TextureConfiguration create(Function<BlockType, String> base, - Function<BlockType, String> side, - Function<BlockType, String> up, Function<BlockType, String> down) { - return (type, textureId) -> { - return switch (textureId) { - case "texture_side" -> side.apply(type); - case "texture_up" -> up.apply(type); - case "texture_down" -> down.apply(type); - default -> base.apply(type); - }; - }; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/ArchBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/ArchBlock.java deleted file mode 100644 index d16dd8b..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/ArchBlock.java +++ /dev/null @@ -1,33 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import org.quiltmc.qsl.block.extensions.api.QuiltBlockSettings; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.StairsBlock; -import net.minecraft.text.MutableText; - -public class ArchBlock extends StairsBlock implements TypedGrouped { - protected final TypedGroupedBlock typedGroupedBlock; - - // This is a super class of settings. - public ArchBlock(BlockState blockState, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(blockState, settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - public ArchBlock(Block block, QuiltBlockSettings settings, TypedGroupedBlock typedGroupedBlock) { - this(block.getDefaultState(), settings, typedGroupedBlock); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/ArchExRodBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/ArchExRodBlock.java deleted file mode 100644 index b48ea48..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/ArchExRodBlock.java +++ /dev/null @@ -1,75 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.RodBlock; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.WorldAccess; - -public class ArchExRodBlock extends RodBlock implements Waterloggable, TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - protected final TypedGroupedBlock typedGroupedBlock; - - public ArchExRodBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.setDefaultState(this.getDefaultState().with(FACING, Direction.UP).with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public ArchExRodBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - @Override - public BlockState getPlacementState(ItemPlacementContext ctx) { - Direction dir = ctx.getSide(); - BlockState blockState = ctx.getWorld().getBlockState(ctx.getBlockPos().offset(dir.getOpposite())); - return blockState.isOf(this) && blockState.get(FACING) == dir - ? this.getDefaultState().with(FACING, dir.getOpposite()).with(WATERLOGGED, ctx.getWorld().getFluidState(ctx.getBlockPos()).getFluid() == Fluids.WATER) - : this.getDefaultState().with(FACING, dir).with(WATERLOGGED, ctx.getWorld().getFluidState(ctx.getBlockPos()).getFluid() == Fluids.WATER); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(FACING, WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends RodBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/BeamBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/BeamBlock.java deleted file mode 100644 index 381c834..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/BeamBlock.java +++ /dev/null @@ -1,99 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.*; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class BeamBlock extends PillarBlock implements Waterloggable, TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_AXIS_BOX = Block.createCuboidShape(0.0, 2.0, 2.0, 16.0, 14.0, 14.0); - protected static final VoxelShape Y_AXIS_BOX = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 16.0, 14.0); - protected static final VoxelShape Z_AXIS_BOX = Block.createCuboidShape(2.0, 2.0, 0.0, 14.0, 14.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public BeamBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - public BeamBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.setDefaultState(this.getDefaultState().with(AXIS, Direction.Axis.Y).with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case X -> X_AXIS_BOX; - case Y -> Y_AXIS_BOX; - case Z -> Z_AXIS_BOX; - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(AXIS, context.getSide().getAxis()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(AXIS, WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/CrownMoldingBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/CrownMoldingBlock.java deleted file mode 100644 index 8606fa1..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/CrownMoldingBlock.java +++ /dev/null @@ -1,96 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.StairsBlock; -import net.minecraft.block.enums.BlockHalf; -import net.minecraft.block.enums.StairShape; -import net.minecraft.text.MutableText; -import net.minecraft.util.function.BooleanBiFunction; -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; - -public class CrownMoldingBlock extends StairsBlock implements TypedGrouped { - /* - NE -> Northeast - NW -> Northwest - SE -> Southeast - SW -> Southwest - */ - protected static final VoxelShape NORTH_BOX_TOP = Block.createCuboidShape(0.0, 8.0, 0.0, 16.0, 16.0, 8.0); - protected static final VoxelShape SOUTH_BOX_TOP = Block.createCuboidShape(0.0, 8.0, 8.0, 16.0, 16.0, 16.0); - protected static final VoxelShape EAST_BOX_TOP = Block.createCuboidShape(8.0, 8.0, 0.0, 16.0, 16.0, 16.0); - protected static final VoxelShape WEST_BOX_TOP = Block.createCuboidShape(0.0, 8.0, 0.0, 8.0, 16.0, 16.0); - - protected static final VoxelShape NORTH_BOX_BOTTOM = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 8.0, 8.0); - protected static final VoxelShape SOUTH_BOX_BOTTOM = Block.createCuboidShape(0.0, 0.0, 8.0, 16.0, 8.0, 16.0); - protected static final VoxelShape EAST_BOX_BOTTOM = Block.createCuboidShape(8.0, 0.0, 0.0, 16.0, 8.0, 16.0); - protected static final VoxelShape WEST_BOX_BOTTOM = Block.createCuboidShape(0.0, 0.0, 0.0, 8.0, 8.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - private VoxelShape getStraightShapeFor(BlockHalf upOrDown, Direction cardinalDir) { - return switch (upOrDown) { - case TOP -> switch (cardinalDir) { - case NORTH -> NORTH_BOX_TOP; - case SOUTH -> SOUTH_BOX_TOP; - case EAST -> EAST_BOX_TOP; - case WEST -> WEST_BOX_TOP; - default -> VoxelShapes.fullCube(); - }; - case BOTTOM -> switch (cardinalDir) { - case NORTH -> NORTH_BOX_BOTTOM; - case SOUTH -> SOUTH_BOX_BOTTOM; - case EAST -> EAST_BOX_BOTTOM; - case WEST -> WEST_BOX_BOTTOM; - default -> VoxelShapes.fullCube(); - }; - //throw new IllegalStateException("Unexpected value: " + upOrDown); - }; - } - - public CrownMoldingBlock(BlockState blockState, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(blockState, settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - public CrownMoldingBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(baseBlock.getDefaultState(), settings, typedGroupedBlock); - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction cardinalDir = state.get(FACING); - BlockHalf upOrDown = state.get(HALF); - StairShape moldingShape = state.get(SHAPE); - - var straightShape = this.getStraightShapeFor(upOrDown, cardinalDir); - - final VoxelShape INNER_CORNER = VoxelShapes.union(straightShape, this.getStraightShapeFor(upOrDown, cardinalDir.rotateYCounterclockwise())); - final VoxelShape OUTER_CORNER = VoxelShapes.combineAndSimplify(straightShape, this.getStraightShapeFor(upOrDown, cardinalDir.rotateYCounterclockwise()), BooleanBiFunction.AND); - final VoxelShape A_DEFAULT_CORNER = VoxelShapes.combineAndSimplify(straightShape, this.getStraightShapeFor(upOrDown, cardinalDir.rotateYClockwise()), BooleanBiFunction.AND); - - return switch (moldingShape) { - case STRAIGHT -> straightShape; - case INNER_LEFT -> INNER_CORNER; - case OUTER_LEFT -> OUTER_CORNER; - default -> A_DEFAULT_CORNER; - }; - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/CurveBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/CurveBlock.java deleted file mode 100644 index b1de383..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/CurveBlock.java +++ /dev/null @@ -1,79 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalFacingBlock; -import net.minecraft.block.enums.BlockHalf; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.DirectionProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import org.quiltmc.qsl.block.extensions.api.QuiltBlockSettings; - -public class CurveBlock extends HorizontalFacingBlock implements TypedGrouped { - public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; - public static final EnumProperty<BlockHalf> HALF = Properties.BLOCK_HALF; - - protected final TypedGroupedBlock typedGroupedBlock; - - protected static final VoxelShape SHAPE_TOP = Block.createCuboidShape(0.0, 8.0, 0.0, 16.0, 16.0, 16.0); - protected static final VoxelShape SHAPE_BOTTOM = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 8.0, 16.0); - - public CurveBlock(Block baseBlock, QuiltBlockSettings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - // Thanks Falkreon - BlockHalf half = switch(context.getSide()) { - case UP -> BlockHalf.BOTTOM; - case DOWN -> BlockHalf.TOP; - default -> { - double sideHitHeight = context.getHitPos().getY() - context.getBlockPos().getY(); - if (sideHitHeight > 0.5) { - yield BlockHalf.TOP; - } else { - yield BlockHalf.BOTTOM; - } - } - }; - - return this.getDefaultState().with(FACING, context.getPlayerFacing()).with(HALF, half); - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - super.appendProperties(builder); - builder.add(FACING, HALF); - } - - @Override - public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) { - return VoxelShapes.empty(); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends HorizontalFacingBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/FacadeBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/FacadeBlock.java deleted file mode 100644 index a8d17e8..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/FacadeBlock.java +++ /dev/null @@ -1,90 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.AbstractLichenBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.LichenSpreadBehavior; -import net.minecraft.block.ShapeContext; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -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 net.minecraft.world.WorldAccess; - -/** - * @author Gaming32 & Portal Cubed devs - * @since arch-ex v2.1.0-1.19.4 - **/ -public class FacadeBlock extends AbstractLichenBlock implements TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - protected final TypedGroupedBlock typedGroupedBlock; - - public FacadeBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.setDefaultState(this.getDefaultState().with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public FacadeBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - @Override - public VoxelShape getCollisionShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - return VoxelShapes.empty(); - } - - @Override - public LichenSpreadBehavior getLichenSpreadBehavior() { - return new LichenSpreadBehavior(this); - } - - @Override - public boolean canReplace(BlockState state, ItemPlacementContext ctx) { - return ctx.getStack().isOf(this.asItem()); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected MapCodec<? extends AbstractLichenBlock> getCodec() { - return null; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - super.appendProperties(builder); - builder.add(WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/FencePostBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/FencePostBlock.java deleted file mode 100644 index 3c65f2d..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/FencePostBlock.java +++ /dev/null @@ -1,105 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.PillarBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.state.property.Property; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class FencePostBlock extends PillarBlock implements Waterloggable, TypedGrouped { - public static final EnumProperty<Direction.Axis> AXIS = Properties.AXIS; - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_AXIS_BOX = Block.createCuboidShape(0.0, 6.0, 6.0, 16.0, 10.0, 10.0); - protected static final VoxelShape Y_AXIS_BOX = Block.createCuboidShape(6.0, 0.0, 6.0, 10.0, 16.0, 10.0); - protected static final VoxelShape Z_AXIS_BOX = Block.createCuboidShape(6.0, 6.0, 0.0, 10.0, 10.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public FencePostBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - setDefaultState(this.stateManager.getDefaultState().with(AXIS, Direction.Axis.Y)); - this.typedGroupedBlock = typedGroupedBlock; - } - - public FencePostBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case X -> X_AXIS_BOX; - case Y -> Y_AXIS_BOX; - case Z -> Z_AXIS_BOX; - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(AXIS, context.getSide().getAxis()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> stateManager) { - stateManager.add(new Property[]{AXIS, WATERLOGGED}); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/IBeamBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/IBeamBlock.java deleted file mode 100644 index caca4d9..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/IBeamBlock.java +++ /dev/null @@ -1,99 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.PillarBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class IBeamBlock extends PillarBlock implements Waterloggable, TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - public static final EnumProperty<Direction.Axis> AXIS = Properties.AXIS; - - protected static final VoxelShape X_AXIS_BOX = Block.createCuboidShape(0.0, 2.0, 2.0, 16.0, 14.0, 14.0); - protected static final VoxelShape Y_AXIS_BOX = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 16.0, 14.0); - protected static final VoxelShape Z_AXIS_BOX = Block.createCuboidShape(2.0, 2.0, 0.0, 14.0, 14.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public IBeamBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case X -> X_AXIS_BOX; - case Y -> Y_AXIS_BOX; - case Z -> Z_AXIS_BOX; - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(AXIS, context.getSide().getAxis()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(AXIS, WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/JoistBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/JoistBlock.java deleted file mode 100644 index ec2ad94..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/JoistBlock.java +++ /dev/null @@ -1,95 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalFacingBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -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 net.minecraft.world.WorldAccess; - -public class JoistBlock extends HorizontalFacingBlock implements Waterloggable, TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_BOX = Block.createCuboidShape(4.0, 4.0, 0.0, 12.0, 16.0, 16.0); - protected static final VoxelShape Y_BOX = Block.createCuboidShape(0.0, 4.0, 4.0, 16.0, 16.0, 12.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public JoistBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - setDefaultState(this.stateManager.getDefaultState().with(Properties.HORIZONTAL_FACING, Direction.NORTH)); - this.setDefaultState(this.getDefaultState().with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public JoistBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - // The following deals with block rotation - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction cardinalDir = state.get(FACING); - return switch (cardinalDir) { - case NORTH, SOUTH -> X_BOX; - case EAST, WEST -> Y_BOX; - default -> VoxelShapes.fullCube(); - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - //World world = context.getWorld(); - //BlockPos pos = context.getBlockPos(); - return this.getDefaultState().with(Properties.HORIZONTAL_FACING, context.getPlayerFacing()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(Properties.HORIZONTAL_FACING); - builder.add(WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends HorizontalFacingBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/LatticeBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/LatticeBlock.java deleted file mode 100644 index d8bdae6..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/LatticeBlock.java +++ /dev/null @@ -1,93 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalFacingBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -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 net.minecraft.world.WorldAccess; - -public class LatticeBlock extends HorizontalFacingBlock implements Waterloggable, TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_BOX = Block.createCuboidShape(0.0, 0.0, 7.0, 16.0, 16.0, 9.0); - protected static final VoxelShape Y_BOX = Block.createCuboidShape(7.0, 0.0, 0.0, 9.0, 16.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public LatticeBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - public LatticeBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - // The following deals with block rotation - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction cardinalDir = state.get(FACING); - return switch (cardinalDir) { - case NORTH, SOUTH -> X_BOX; - case EAST, WEST -> Y_BOX; - default -> VoxelShapes.fullCube(); - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - //World world = context.getWorld(); - //BlockPos pos = context.getBlockPos(); - return this.getDefaultState().with(Properties.HORIZONTAL_FACING, context.getPlayerFacing()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(Properties.HORIZONTAL_FACING); - builder.add(WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends HorizontalFacingBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/OctagonalColumnBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/OctagonalColumnBlock.java deleted file mode 100644 index e89bc3c..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/OctagonalColumnBlock.java +++ /dev/null @@ -1,124 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.PillarBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class OctagonalColumnBlock extends PillarBlock implements Waterloggable, TypedGrouped { - public static final BooleanProperty MIN_CAP = BooleanProperty.of("min_cap"); - public static final BooleanProperty MAX_CAP = BooleanProperty.of("max_cap"); - public static final EnumProperty<Direction.Axis> AXIS = Properties.AXIS; - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_AXIS_BOX = Block.createCuboidShape(0.0, 4.0, 4.0, 16.0, 12.0, 12.0); - protected static final VoxelShape Y_AXIS_BOX = Block.createCuboidShape(4.0, 0.0, 4.0, 12.0, 16.0, 12.0); - protected static final VoxelShape Z_AXIS_BOX = Block.createCuboidShape(4.0, 4.0, 0.0, 12.0, 12.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public OctagonalColumnBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.setDefaultState( - this.getDefaultState() - .with(WATERLOGGED, false) - .with(AXIS, Direction.Axis.Y) - .with(MIN_CAP, false) - .with(MAX_CAP, false) - ); // Thanks LambdAurora! - - this.typedGroupedBlock = typedGroupedBlock; - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - // The following block of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case X -> X_AXIS_BOX; - case Y -> Y_AXIS_BOX; - case Z -> Z_AXIS_BOX; - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - BlockState initialState = this.getDefaultState().with(AXIS, context.getSide().getAxis()); - return getUpdatedState(context.getWorld(), context.getBlockPos(), initialState); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return getUpdatedState(world, pos, state); - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> stateManager) { - stateManager.add(AXIS, MIN_CAP, MAX_CAP, WATERLOGGED); - } - - public BlockState getUpdatedState(WorldAccess world, BlockPos pos, BlockState state) { - Direction.Axis selfAxis = state.get(AXIS); - - BlockState minNeighbor = world.getBlockState(pos.offset(selfAxis, -1)); - boolean minCap = !(minNeighbor.getBlock() instanceof OctagonalColumnBlock && - minNeighbor.get(AXIS) == selfAxis); - - BlockState maxNeighbor = world.getBlockState(pos.offset(selfAxis, 1)); - boolean maxCap = !(maxNeighbor.getBlock() instanceof OctagonalColumnBlock && - maxNeighbor.get(AXIS) == selfAxis); - - return state.with(MIN_CAP, minCap).with(MAX_CAP, maxCap); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/PostCapBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/PostCapBlock.java deleted file mode 100644 index 441c2e0..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/PostCapBlock.java +++ /dev/null @@ -1,74 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class PostCapBlock extends Block implements TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape POST_CAP_SHAPE = Block.createCuboidShape(5.0, 0.0, 5.0, 11.0, 3.0, 11.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public PostCapBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.setDefaultState(this.getDefaultState().with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public PostCapBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - return POST_CAP_SHAPE; - } - - // Deals with waterlogging. Thanks acikek! - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/PostLanternBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/PostLanternBlock.java deleted file mode 100644 index 1104e82..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/PostLanternBlock.java +++ /dev/null @@ -1,129 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import io.github.debuggyteam.architecture_extensions.util.VoxelHelper; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.function.BooleanBiFunction; -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 net.minecraft.world.WorldAccess; - -public class PostLanternBlock extends Block implements TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - public static final BooleanProperty HANGING = Properties.HANGING; - - private static final VoxelShape LANTERN_BODY = Block.createCuboidShape(5, 0, 5, 11, 6, 11); - private static final VoxelShape LANTERN_CAP = Block.createCuboidShape(4, 5, 4, 12, 6, 12); - private static final VoxelShape LANTERN_FINIAL = Block.createCuboidShape(6, 6, 6, 10, 7, 10); - - private static final VoxelShape POST_LANTERN_SHAPE = VoxelShapes.combine( - VoxelShapes.combine(LANTERN_BODY, LANTERN_CAP, BooleanBiFunction.OR), - LANTERN_FINIAL, BooleanBiFunction.OR); - - private static final VoxelShape HANGING_LANTERN_BODY = Block.createCuboidShape(5, 9, 5, 11, 15, 11); - private static final VoxelShape HANGING_LANTERN_CAP = Block.createCuboidShape(4, 14, 4, 12, 15, 12); - private static final VoxelShape HANGING_LANTERN_FINIAL = Block.createCuboidShape(6, 15, 6, 10, 16, 10); - - private static final VoxelShape HANGING_POST_LANTERN_SHAPE = VoxelShapes.combine( - VoxelShapes.combine(HANGING_LANTERN_BODY, HANGING_LANTERN_CAP, BooleanBiFunction.OR), - HANGING_LANTERN_FINIAL, BooleanBiFunction.OR); - - protected final TypedGroupedBlock typedGroupedBlock; - - public PostLanternBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings.luminance(state -> 15)); - this.setDefaultState(this.getDefaultState().with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public PostLanternBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - return state.get(HANGING) ? HANGING_POST_LANTERN_SHAPE : POST_LANTERN_SHAPE; - } - - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - BlockState placementState = this.getDefaultState(); - - if (context.getSide().equals(Direction.DOWN)) { - placementState = placementState.with(HANGING, canHang(context.getWorld(), context.getBlockPos())); - } else { - placementState = placementState.with(HANGING, false); - } - - // Deals with waterlogging. Thanks acikek! - return placementState.with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - if (state.get(HANGING)) { - //Make sure we can still hang from the block above us, and if not, do not hang - if (!canHang(world, pos)) { - return state.with(HANGING, false); - } - } else { - /* - * This is more complicated because we kind of favor the non-hanging status. If we're not ahnging, but the - * block below us is completely air, and we discover that there's something to hang from, go ahead and hang. - */ - if (world.getBlockState(pos.down()).isAir()) { - if (canHang(world, pos)) { - return state.with(HANGING, true); - } - } - } - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(WATERLOGGED).add(HANGING); - } - - public static boolean canHang(BlockView world, BlockPos pos) { - BlockPos above = pos.up(); - VoxelShape shape = world.getBlockState(above).getCollisionShape(world, above); - - if (!VoxelHelper.testVoxel(shape, 7, 0, 7)) return false; - if (!VoxelHelper.testVoxel(shape, 7, 0, 8)) return false; - if (!VoxelHelper.testVoxel(shape, 8, 0, 7)) return false; - if (!VoxelHelper.testVoxel(shape, 8, 0, 8)) return false; - - return true; - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoofBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoofBlock.java deleted file mode 100644 index 7fbc05f..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoofBlock.java +++ /dev/null @@ -1,31 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.StairsBlock; -import net.minecraft.text.MutableText; - -public class RoofBlock extends StairsBlock implements TypedGrouped { - - protected final TypedGroupedBlock typedGroupedBlock; - - public RoofBlock(BlockState blockState, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(blockState, settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - public RoofBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this (baseBlock.getDefaultState(), settings, typedGroupedBlock); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoundArchBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoundArchBlock.java deleted file mode 100644 index bc22ccb..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoundArchBlock.java +++ /dev/null @@ -1,93 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalFacingBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.enums.BlockHalf; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.DirectionProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -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.quiltmc.qsl.block.extensions.api.QuiltBlockSettings; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; - -public class RoundArchBlock extends HorizontalFacingBlock implements TypedGrouped { - public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; - public static final EnumProperty<BlockHalf> HALF = Properties.BLOCK_HALF; - - protected final TypedGroupedBlock typedGroupedBlock; - - protected static final VoxelShape SHAPE_TOP = Block.createCuboidShape(0.0, 8.0, 0.0, 16.0, 16.0, 16.0); - protected static final VoxelShape SHAPE_BOTTOM = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 8.0, 16.0); - - public RoundArchBlock(Block baseBlock, QuiltBlockSettings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - // Thanks Falkreon - BlockHalf half = switch(context.getSide()) { - case UP -> BlockHalf.BOTTOM; - case DOWN -> BlockHalf.TOP; - default -> { - double sideHitHeight = context.getHitPos().getY() - context.getBlockPos().getY(); - if (sideHitHeight > 0.5) { - yield BlockHalf.TOP; - } else { - yield BlockHalf.BOTTOM; - } - } - }; - - return this.getDefaultState().with(FACING, context.getPlayerFacing()).with(HALF, half); - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - super.appendProperties(builder); - builder.add(FACING, HALF); - } - - @Override - public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) { - return VoxelShapes.empty(); - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - BlockHalf half = state.get(HALF); - return switch (half) { - case TOP -> SHAPE_TOP; - case BOTTOM -> SHAPE_BOTTOM; - }; - - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends HorizontalFacingBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoundFencePostBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoundFencePostBlock.java deleted file mode 100644 index 3e1a20f..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/RoundFencePostBlock.java +++ /dev/null @@ -1,100 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.PillarBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.Waterloggable; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class RoundFencePostBlock extends PillarBlock implements Waterloggable, TypedGrouped { - public static final EnumProperty<Direction.Axis> AXIS = Properties.AXIS; - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_AXIS_BOX = Block.createCuboidShape(0.0, 5.0, 5.0, 16.0, 11.0, 11.0); - protected static final VoxelShape Y_AXIS_BOX = Block.createCuboidShape(5.0, 0.0, 5.0, 11.0, 16.0, 11.0); - protected static final VoxelShape Z_AXIS_BOX = Block.createCuboidShape(5.0, 5.0, 0.0, 11.0, 11.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public RoundFencePostBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - setDefaultState(this.stateManager.getDefaultState().with(AXIS, Direction.Axis.Y)); - this.typedGroupedBlock = typedGroupedBlock; - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case X -> X_AXIS_BOX; - case Y -> Y_AXIS_BOX; - case Z -> Z_AXIS_BOX; - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(AXIS, context.getSide().getAxis()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> stateManager) { - stateManager.add(AXIS, WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TransomBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TransomBlock.java deleted file mode 100644 index bf88c5e..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TransomBlock.java +++ /dev/null @@ -1,82 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalFacingBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -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; - -public class TransomBlock extends HorizontalFacingBlock implements TypedGrouped { - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape NORTH_BOX = Block.createCuboidShape(2.0, 0.0, 0.0, 14.0, 16.0, 4.0); - protected static final VoxelShape SOUTH_BOX = Block.createCuboidShape(2.0, 0.0, 12.0, 14.0, 16.0, 16.0); - protected static final VoxelShape EAST_BOX = Block.createCuboidShape(12.0, 0.0, 2.0, 16.0, 16.0, 14.0); - protected static final VoxelShape WEST_BOX = Block.createCuboidShape(0.0, 0.0, 2.0, 4.0, 16.0, 14.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public TransomBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - setDefaultState(getDefaultState().with(Properties.HORIZONTAL_FACING, Direction.NORTH)); - this.typedGroupedBlock = typedGroupedBlock; - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction cardinalDir = state.get(FACING); - return switch (cardinalDir) { - case NORTH -> NORTH_BOX; - case SOUTH -> SOUTH_BOX; - case EAST -> EAST_BOX; - case WEST -> WEST_BOX; - default -> VoxelShapes.fullCube(); - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(Properties.HORIZONTAL_FACING, context.getPlayerFacing()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(Properties.HORIZONTAL_FACING, WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends HorizontalFacingBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TubeSteelBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TubeSteelBlock.java deleted file mode 100644 index 6937fde..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TubeSteelBlock.java +++ /dev/null @@ -1,67 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.PillarBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -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; - -public class TubeSteelBlock extends PillarBlock implements TypedGrouped { - protected static final VoxelShape FIRST_SIDE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 3.0); - protected static final VoxelShape SECOND_SIDE = Block.createCuboidShape(0.0, 0.0, 3.0, 3.0, 16.0, 13.0); - protected static final VoxelShape THIRD_SIDE = Block.createCuboidShape(13.0, 0.0, 3.0, 16.0, 16.0, 13.0); - protected static final VoxelShape FOURTH_SIDE = Block.createCuboidShape(0.0, 0.0, 13.0, 16.0, 16.0, 16.0); - - protected static final VoxelShape TUBE_UPWARDS = VoxelShapes.union(FIRST_SIDE, SECOND_SIDE, THIRD_SIDE, FOURTH_SIDE); - - protected final TypedGroupedBlock typedGroupedBlock; - - public TubeSteelBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - this.typedGroupedBlock = typedGroupedBlock; - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case Y -> TUBE_UPWARDS; - default -> VoxelShapes.fullCube(); - }; - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TypedGrouped.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TypedGrouped.java deleted file mode 100644 index 714d598..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/TypedGrouped.java +++ /dev/null @@ -1,32 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.text.MutableText; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -public interface TypedGrouped { - public static final String GROUPED_BLOCK_PREFIX = "architecture_extensions.grouped_block"; - public static final String BLOCKTYPE_BLOCK_KEY = "architecture_extensions.block_type_block"; - public static final String BLOCK_TYPE_PREFIX = "architecture_extensions.block_type"; - - public TypedGroupedBlock getTypedGroupedBlock(); - - public default MutableText getServerTranslation() { - String typeId = getTypedGroupedBlock().type().toString(); - Identifier blockId = getTypedGroupedBlock().groupedBlock().id(); - - boolean isVanilla = blockId.getNamespace().equals("minecraft") || blockId.getNamespace().equals(""); - - MutableText baseBlockName = (isVanilla) ? - //Our VanillaIntegration keys are all legacy ones - Text.translatable(GROUPED_BLOCK_PREFIX + "." + blockId.getPath()) : - //Assume everyone else is not legacy - Text.translatable(GROUPED_BLOCK_PREFIX + "." + blockId.getNamespace() + "." + blockId.getPath()); - - MutableText blockTypeName = Text.translatable(BLOCK_TYPE_PREFIX + "." + typeId); - - return Text.translatable(BLOCKTYPE_BLOCK_KEY, baseBlockName, blockTypeName); - - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/WallColumnBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/WallColumnBlock.java deleted file mode 100644 index caafec5..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/WallColumnBlock.java +++ /dev/null @@ -1,102 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import com.mojang.serialization.MapCodec; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalFacingBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -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 net.minecraft.world.World; -import net.minecraft.world.WorldAccess; - -public class WallColumnBlock extends HorizontalFacingBlock implements TypedGrouped { - public static final BooleanProperty CAPPED = BooleanProperty.of("cap"); - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape NORTH_BOX = Block.createCuboidShape(2.0, 0.0, 0.0, 14.0, 16.0, 4.0); - protected static final VoxelShape SOUTH_BOX = Block.createCuboidShape(2.0, 0.0, 12.0, 14.0, 16.0, 16.0); - protected static final VoxelShape EAST_BOX = Block.createCuboidShape(12.0, 0.0, 2.0, 16.0, 16.0, 14.0); - protected static final VoxelShape WEST_BOX = Block.createCuboidShape(0.0, 0.0, 2.0, 4.0, 16.0, 14.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - // This is a super class of settings. - public WallColumnBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - setDefaultState(this.stateManager.getDefaultState().with(Properties.HORIZONTAL_FACING, Direction.NORTH).with(CAPPED, false)); - this.setDefaultState(this.getDefaultState().with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public WallColumnBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - // Both of the following blocks of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction cardinalDir = state.get(FACING); - return switch (cardinalDir) { - case NORTH -> NORTH_BOX; - case SOUTH -> SOUTH_BOX; - case EAST -> EAST_BOX; - case WEST -> WEST_BOX; - default -> VoxelShapes.fullCube(); - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - World world = context.getWorld(); - BlockPos pos = context.getBlockPos(); - return this.getDefaultState().with(Properties.HORIZONTAL_FACING, context.getPlayerFacing()).with(CAPPED, world.getBlockState(pos.up()).getBlock() != this).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction dir, BlockState adjacentState, WorldAccess world, BlockPos pos, BlockPos adjacentPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state.with(CAPPED, world.getBlockState(pos.up()).getBlock() != this); - } - - // Deals with block waterlogging. Thanks acikek! - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> builder) { - builder.add(Properties.HORIZONTAL_FACING); - builder.add(WATERLOGGED); - builder.add(CAPPED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } - - @Override - protected MapCodec<? extends HorizontalFacingBlock> getCodec() { - return null; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/WallPostBlock.java b/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/WallPostBlock.java deleted file mode 100644 index a9670a1..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/blocks/WallPostBlock.java +++ /dev/null @@ -1,104 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.blocks; - -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.PillarBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.MutableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; - -public class WallPostBlock extends PillarBlock implements TypedGrouped { - public static final EnumProperty<Direction.Axis> AXIS = Properties.AXIS; - public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - - protected static final VoxelShape X_AXIS_BOX = Block.createCuboidShape(0.0, 4.0, 4.0, 16.0, 12.0, 12.0); - protected static final VoxelShape Y_AXIS_BOX = Block.createCuboidShape(4.0, 0.0, 4.0, 12.0, 16.0, 12.0); - protected static final VoxelShape Z_AXIS_BOX = Block.createCuboidShape(4.0, 4.0, 0.0, 12.0, 12.0, 16.0); - - protected final TypedGroupedBlock typedGroupedBlock; - - public WallPostBlock(Settings settings, TypedGroupedBlock typedGroupedBlock) { - super(settings); - setDefaultState(this.stateManager.getDefaultState().with(AXIS, Direction.Axis.Y)); - this.setDefaultState(this.getDefaultState().with(WATERLOGGED, false)); // Thanks LambdAurora! - this.typedGroupedBlock = typedGroupedBlock; - } - - public WallPostBlock(Block baseBlock, Settings settings, TypedGroupedBlock typedGroupedBlock) { - this(settings, typedGroupedBlock); - } - - // The following deals with block rotation - @Override - public BlockState rotate(BlockState state, BlockRotation rotation) { - return changeRotation(state, rotation); - } - - public static BlockState changeRotation(BlockState state, BlockRotation rotation) { - return switch (rotation) { - case COUNTERCLOCKWISE_90, CLOCKWISE_90 -> switch (state.get(AXIS)) { - case X -> state.with(AXIS, Direction.Axis.Z); - case Z -> state.with(AXIS, Direction.Axis.X); - default -> state; - }; - default -> state; - }; - } - - // The following block of code below deals with block collision. - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { - Direction.Axis cardinalDir = state.get(AXIS); - return switch (cardinalDir) { - case X -> X_AXIS_BOX; - case Y -> Y_AXIS_BOX; - case Z -> Z_AXIS_BOX; - }; - } - - // Deals with placing the block properly in accordance to direction. - @Override - public BlockState getPlacementState(ItemPlacementContext context) { - return this.getDefaultState().with(AXIS, context.getSide().getAxis()).with(WATERLOGGED, context.getWorld().getFluidState(context.getBlockPos()).getFluid() == Fluids.WATER); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : Fluids.EMPTY.getDefaultState(); - } - - @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - - return state; - } - - @Override - protected void appendProperties(StateManager.Builder<Block, BlockState> stateManager) { - stateManager.add(AXIS, WATERLOGGED); - } - - @Override - public TypedGroupedBlock getTypedGroupedBlock() { - return typedGroupedBlock; - } - - @Override - public MutableText getName() { - return getServerTranslation(); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/client/ArchitectureExtensionsClient.java b/src/main/java/io/github/debuggyteam/architecture_extensions/client/ArchitectureExtensionsClient.java deleted file mode 100644 index ee91c16..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/client/ArchitectureExtensionsClient.java +++ /dev/null @@ -1,36 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.client; - -import io.github.debuggyteam.architecture_extensions.ArchitectureExtensions; -import io.github.debuggyteam.architecture_extensions.resource.DataGeneration; -import io.github.debuggyteam.architecture_extensions.util.SafeRenderLayer; -import net.minecraft.registry.Registries; -import net.minecraft.resource.ResourceType; -import org.jetbrains.annotations.NotNull; -import org.quiltmc.loader.api.ModContainer; -import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer; -import org.quiltmc.qsl.block.extensions.api.client.BlockRenderLayerMap; -import org.quiltmc.qsl.resource.loader.api.ResourceLoader; -import org.quiltmc.qsl.resource.loader.api.PackRegistrationContext; - -public class ArchitectureExtensionsClient implements ClientModInitializer, PackRegistrationContext.Callback { - @Override - public void onInitializeClient(ModContainer mod) { - DataGeneration.BLOCKS.forEach(block -> { - SafeRenderLayer renderLayer = SafeRenderLayer.choose( - block.type().renderLayer(), - block.groupedBlock().renderLayer() - ); - if (renderLayer != SafeRenderLayer.SOLID) { - BlockRenderLayerMap.put(renderLayer.get(), Registries.BLOCK.get(block.id())); - } - }); - - ResourceLoader.get(ResourceType.CLIENT_RESOURCES).getRegisterDefaultPackEvent().register(this); - } - - @Override - public void onRegisterPack(@NotNull PackRegistrationContext context) { - DataGeneration.generate(ResourceType.CLIENT_RESOURCES); - context.addResourcePack(ArchitectureExtensions.RESOURCE_PACK); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/DataGeneration.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/DataGeneration.java deleted file mode 100644 index 147d267..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/DataGeneration.java +++ /dev/null @@ -1,187 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource; - -import java.io.FileNotFoundException; -import java.util.Set; - -import org.jetbrains.annotations.Nullable; -import org.quiltmc.qsl.block.content.registry.api.BlockContentRegistries; - -import com.google.common.collect.Sets; - -import io.github.debuggyteam.architecture_extensions.ArchitectureExtensions; -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import io.github.debuggyteam.architecture_extensions.api.RecipeConfigurator; -import io.github.debuggyteam.architecture_extensions.api.TextureConfiguration; -import io.github.debuggyteam.architecture_extensions.api.BlockType.TypedGroupedBlock; -import io.github.debuggyteam.architecture_extensions.resource.json.BlockStateTemplate; -import io.github.debuggyteam.architecture_extensions.resource.json.LootTableTemplate; -import io.github.debuggyteam.architecture_extensions.resource.json.ModelTemplate; -import io.github.debuggyteam.architecture_extensions.resource.json.RecipeTemplate; -import io.github.debuggyteam.architecture_extensions.resource.json.TagTemplate; -import io.github.debuggyteam.architecture_extensions.resource.json.LootTableTemplate.JPool; -import io.github.debuggyteam.architecture_extensions.resource.json.LootTableTemplate.JPool.JCondition; -import net.minecraft.registry.Registries; -import net.minecraft.resource.ResourceType; -import net.minecraft.util.Identifier; - -public final class DataGeneration { - public static final Set<BlockType.TypedGroupedBlock> BLOCKS = Sets.newHashSet(); - - private static final String GROUP_PLACEHOLDER = "group"; - private static final String BASE_PLACEHOLDER = "base"; - private static final String RESULT_PLACEHOLDER = "result"; - private static int serverLoadCount = -1; - - private static final String MODEL_PLACEHOLDER = "model"; - private static int clientLoadCount = -1; - - private static @Nullable String getModelTemplate(BlockType type, String variant) { - try { - return ResourceUtils.getResourceAsString(ArchitectureExtensions.MOD_CONTAINER, ResourceType.CLIENT_RESOURCES, - "assets/architecture_extensions/templates/model/block/" + "template_" + type.toString() + variant + ".json"); - } catch (FileNotFoundException e) { - ArchitectureExtensions.LOGGER.error("The model template for the " + type.toString() + " block type can not be found"); - return null; - } catch (Exception e) { - ArchitectureExtensions.LOGGER.error("Exception while trying to load the model template for the " + type.toString() + " block type : ", e); - return null; - } - } - - private static @Nullable String getBlockStateTemplate(BlockType type) { - try { - return ResourceUtils.getResourceAsString(ArchitectureExtensions.MOD_CONTAINER, ResourceType.CLIENT_RESOURCES, - "assets/architecture_extensions/templates/blockstate/" + "template_" + type.toString() + ".json"); - } catch (FileNotFoundException e) { - ArchitectureExtensions.LOGGER.error("The blockstate template for the " + type.toString() + " block type can not be found"); - return null; - } catch (Exception e) { - ArchitectureExtensions.LOGGER.error("Exception while trying to load the blockstate template for the " + type.toString() + " block type : ", e); - return null; - } - } - - private static @Nullable String getRecipeTemplate(String id) { - try { - return ResourceUtils.getResourceAsString(ArchitectureExtensions.MOD_CONTAINER, ResourceType.SERVER_DATA, - "data/architecture_extensions/templates/recipe/" + id + ".json"); - } catch (FileNotFoundException e) { - ArchitectureExtensions.LOGGER.error("The recipe template for " + id + " can not be found"); - return null; - } catch (Exception e) { - ArchitectureExtensions.LOGGER.error("Exception while trying to load the recipe template for " + id + " : ", e); - return null; - } - } - - private static void generateModels(TypedGroupedBlock block) { - var modelId = new Identifier(block.id().getNamespace(), "models/block/" + block.id().getPath()); - - for (String variant : block.type().variants()) { - if (!variant.isBlank()) variant = "_" + variant; - var rawModel = getModelTemplate(block.type(), variant); - if (rawModel == null) continue; - - var model = new ModelTemplate(rawModel); - - var textureConfiguration = block.groupedBlock().textureConfiguration(); - - for (String textureId : TextureConfiguration.TEXTURE_IDS) { - if (rawModel.contains(textureId)) model.addTexture(textureId, textureConfiguration.apply(block.type(), textureId)); - } - - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.CLIENT_RESOURCES, new Identifier(modelId.getNamespace(), modelId.getPath() + variant + ".json"), path -> model.serialize().toString()); - } - - var itemModel = "{\"parent\":\"" + modelId.toString().replaceFirst("models/", "") + "\"}"; - ArchitectureExtensions.RESOURCE_PACK.putText(ResourceType.CLIENT_RESOURCES, new Identifier(modelId.getNamespace(), modelId.getPath().replaceFirst("block", "item") + ".json"), itemModel); - } - - private static void generateBlockState(TypedGroupedBlock block) { - var rawBlockState = getBlockStateTemplate(block.type()); - if (rawBlockState == null) return; - var blockState = new BlockStateTemplate(rawBlockState); - blockState.addConstant(MODEL_PLACEHOLDER, new Identifier(block.id().getNamespace(), "block/" + block.id().getPath()).toString()); - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.CLIENT_RESOURCES, new Identifier(block.id().getNamespace(), "blockstates/" + block.id().getPath() + ".json"), path -> blockState.serialize().toString()); - } - - private static void generateMineableByPickaxeTag() { - var tag = TagTemplate.DEFAULT.get(); - BLOCKS.forEach(block -> { if (BlockContentRegistries.STRIPPABLE.get(block.groupedBlock().baseBlock().get()).isEmpty()) tag.addValue(block.id().toString()); }); - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.SERVER_DATA, new Identifier("tags/blocks/mineable/pickaxe.json"), path -> tag.serialize().toString()); - } - - private static void generateMineableByAxeTag() { - var tag = TagTemplate.DEFAULT.get(); - BLOCKS.forEach(block -> { if (BlockContentRegistries.STRIPPABLE.get(block.groupedBlock().baseBlock().get()).isPresent()) tag.addValue(block.id().toString()); }); - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.SERVER_DATA, new Identifier("tags/blocks/mineable/axe.json"), path -> tag.serialize().toString()); - } - - private static void generateNeedsStoneToolTag() { - var tag = TagTemplate.DEFAULT.get(); - BLOCKS.forEach(block -> tag.addValue(block.id().toString())); - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.SERVER_DATA, new Identifier("tags/blocks/needs_stone_tool.json"), path -> tag.serialize().toString()); - } - - private static void generateLootTables() { - for (TypedGroupedBlock block : BLOCKS) { - var lootTable = LootTableTemplate.BLOCK_BREAK.get(); - lootTable.addPool(JPool.ofItems(block.id()).addCondition(JCondition.SURVIVES_EXPLOSION.get())); - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.SERVER_DATA, new Identifier(block.id().getNamespace(), "loot_tables/blocks/" + block.id().getPath() + ".json"), path -> lootTable.serialize().toString()); - } - } - - private static void generateRecipes() { - final Set<RecipeConfigurator.RecipeTemplate> templates = Sets.newHashSet(); - for (TypedGroupedBlock block : BLOCKS) { - block.groupedBlock().recipeConfigurator().accept(block.type(), templates::add); - for (RecipeConfigurator.RecipeTemplate template : templates) { - final var rawRecipe = getRecipeTemplate(template.id()); - if (rawRecipe == null) continue; - final var recipe = new RecipeTemplate(rawRecipe); - - recipe.addConstant(GROUP_PLACEHOLDER, block.groupedBlock().id().toString()); - recipe.addConstant(BASE_PLACEHOLDER, Registries.BLOCK.getId(block.groupedBlock().baseBlock().get()).toString()); - recipe.addConstant(RESULT_PLACEHOLDER, block.id().toString()); - - final var path = template.tablesaw() ? "custom_recipes/tablesaw/" : "recipes/"; - final var prefix = template.simple() ? "" : block.id().getPath() + "_"; - ArchitectureExtensions.RESOURCE_PACK.putTextAsync(ResourceType.SERVER_DATA, new Identifier(block.id().getNamespace(), path + prefix + template.id() + ".json"), blah -> recipe.serialize().toString()); - } - templates.clear(); - } - } - - public static void generate(ResourceType resourceType) { - if (resourceType == ResourceType.SERVER_DATA) { - // needs to be a count since for some reason server data tries to get generated 4 TIMES??!??!!?! - ++serverLoadCount; - if (serverLoadCount % 4 == 1) return; - if (serverLoadCount > 4) ResourceUtils.refreshCaches(ResourceType.SERVER_DATA); - - generateMineableByPickaxeTag(); - generateMineableByAxeTag(); - generateNeedsStoneToolTag(); - generateLootTables(); - generateRecipes(); - - return; - } - - if (resourceType == ResourceType.CLIENT_RESOURCES) { - // needs to be a count since for some reason client resources try to get generated 2 times! - ++clientLoadCount; - if (clientLoadCount % 2 == 1) return; - if (clientLoadCount > 1) ResourceUtils.refreshCaches(ResourceType.CLIENT_RESOURCES); - - for (TypedGroupedBlock block : BLOCKS) { - generateModels(block); - generateBlockState(block); - } - } - } - - public static void collect(TypedGroupedBlock block) { - BLOCKS.add(block); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/ResourceUtils.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/ResourceUtils.java deleted file mode 100644 index 3fdb1a7..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/ResourceUtils.java +++ /dev/null @@ -1,72 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource; - -import java.io.FileNotFoundException; -import java.nio.file.Files; -import java.nio.file.Path; - -import org.jetbrains.annotations.Nullable; -import org.quiltmc.loader.api.ModContainer; - -import com.google.common.collect.Sets; - -import io.github.debuggyteam.architecture_extensions.ArchitectureExtensions; -import io.github.debuggyteam.architecture_extensions.util.LRUHashMap; -import net.minecraft.resource.ResourceType; - -public final class ResourceUtils { - // Field to get around weird java crap with lambdas - private static Exception exception; - - private static final LRUHashMap<CacheKey, Cache> CACHES = new LRUHashMap<>(400); - - static void refreshCaches(ResourceType resourceType) { - final var removing = Sets.newHashSet(); - CACHES.keySet().forEach(key -> { - if (key.resourceType == resourceType) { - final var refreshedCache = CACHES.get(key).getRefreshed(); - if (refreshedCache == null) removing.add(key); - CACHES.replace(key, refreshedCache); - } - }); - removing.forEach(CACHES::remove); - } - - static String getResourceAsString(ModContainer resourceOwner, ResourceType resourceType, String resourceName) throws Exception { - final var cache = loadOrGetCache(resourceOwner, resourceType, resourceName); - if (exception != null) throw exception; - return cache.content; - } - - private static Cache loadOrGetCache(ModContainer resourceOwner, ResourceType resourceType, String resourceName) throws Exception { - exception = null; - - // use computeIfAbsent to avoid unnecessary object creation - return CACHES.computeIfAbsent(new CacheKey(resourceOwner, resourceType, resourceName), k -> { - try { - return Cache.withInitialContent(resourceOwner.getPath(resourceName).toAbsolutePath()); - } catch (Exception e) { - exception = e; - } - return null; - }); - } - - private static record CacheKey(ModContainer resourceOwner, ResourceType resourceType, String resourceName) { } - - private static record Cache(Path resourcePath, String content) { - public static Cache withInitialContent(Path resourcePath) throws Exception { - return new Cache(resourcePath, Files.readString(resourcePath)); - } - - public @Nullable Cache getRefreshed() { - try { - return new Cache(resourcePath, Files.readString(resourcePath)); - } catch (FileNotFoundException e) { - return null; - } catch (Exception e) { - ArchitectureExtensions.LOGGER.error("Exception while refreshing resource cache, falling back to old data : ", e); - return this; - } - } - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/BaseTemplateJson.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/BaseTemplateJson.java deleted file mode 100644 index d0cd1ee..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/BaseTemplateJson.java +++ /dev/null @@ -1,49 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource.json; - -import java.io.IOException; -import java.io.StringReader; -import java.util.regex.Pattern; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.stream.JsonReader; - -import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; - -abstract class BaseTemplateJson<T> { - - private static final Gson GSON = new Gson(); - - private final String raw; - - private final Object2ObjectMap<String, String> constants = new Object2ObjectArrayMap<>(); - - protected BaseTemplateJson(String raw) { - this.raw = raw; - } - - @SuppressWarnings("unchecked") - public T addConstant(String id, String value) { - this.constants.putIfAbsent(id, value); - return (T) this; - } - - public JsonObject serialize() { - String modifiedRaw = raw.stripIndent(); - for (Object2ObjectMap.Entry<String, String> entry : constants.object2ObjectEntrySet()) { - modifiedRaw = modifiedRaw.replaceAll(Pattern.quote("{" + entry.getKey() + "}"), entry.getValue()); - } - return deserialize(modifiedRaw); - } - - protected static JsonObject deserialize(String raw) { - try { - return GSON.getAdapter(JsonObject.class).read(new JsonReader(new StringReader(raw))); - } catch (IOException e) { - throw new JsonParseException(e); - } - } - -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/BlockStateTemplate.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/BlockStateTemplate.java deleted file mode 100644 index bb3db29..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/BlockStateTemplate.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource.json; - -public final class BlockStateTemplate extends BaseTemplateJson<BlockStateTemplate> { - - public BlockStateTemplate(String raw) { - super(raw); - } - -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/LootTableTemplate.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/LootTableTemplate.java deleted file mode 100644 index d56c092..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/LootTableTemplate.java +++ /dev/null @@ -1,102 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource.json; - -import java.util.Set; -import java.util.function.Supplier; - -import com.google.common.collect.Sets; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; - -import net.minecraft.util.Identifier; - -public final class LootTableTemplate extends BaseTemplateJson<LootTableTemplate> { - - public static final Supplier<LootTableTemplate> BLOCK_BREAK = () -> new LootTableTemplate("{\"type\":\"minecraft:block\",\"pools\":[]}"); - - private final Set<JPool> pools = Sets.newHashSet(); - - private LootTableTemplate(String raw) { - super(raw); - } - - public LootTableTemplate addPool(JPool pool) { - pools.add(pool); - return this; - } - - @Override - public JsonObject serialize() { - final JsonObject json = super.serialize(); - final JsonArray jsonPools = json.get("pools").getAsJsonArray(); - pools.forEach(pool -> jsonPools.add(pool.serialize())); - return json; - } - - public static final class JPool extends BaseTemplateJson<JPool> { - - private int rolls = 1; - private final Set<JEntry> entries = Sets.newHashSet(); - private final Set<JCondition> conditions = Sets.newHashSet(); - - private JPool(String raw) { - super(raw); - } - - public static JPool ofItems(Identifier... ids) { - var pool = new JPool("{\"entries\":[],\"conditions\":[]}"); - for (Identifier id : ids) { pool.addEntry(JEntry.ofItem(id)); } - return pool; - } - - public JPool addEntry(JEntry entry) { - entries.add(entry); - return this; - } - - public JPool addCondition(JCondition condition) { - conditions.add(condition); - return this; - } - - public JPool setRolls(int rolls) { - if (rolls < 0) rolls = 0; - this.rolls = rolls; - return this; - } - - @Override - public JsonObject serialize() { - final JsonObject json = super.serialize(); - final JsonArray jsonEntries = json.get("entries").getAsJsonArray(); - final JsonArray jsonConditions = json.get("conditions").getAsJsonArray(); - json.addProperty("rolls", rolls); - entries.forEach(entry -> jsonEntries.add(entry.serialize())); - conditions.forEach(condition -> jsonConditions.add(condition.serialize())); - return json; - } - - public static final class JEntry extends BaseTemplateJson<JEntry> { - - private JEntry(String raw) { - super(raw); - } - - public static JEntry ofItem(Identifier id) { - return new JEntry("{\"type\":\"minecraft:item\",\"name\":\"" + id.toString() + "\"}"); - } - - } - - public static final class JCondition extends BaseTemplateJson<JCondition> { - - public static final Supplier<JCondition> SURVIVES_EXPLOSION = () -> new JCondition("{\"condition\":\"minecraft:survives_explosion\"}"); - - private JCondition(String raw) { - super(raw); - } - - } - - } - -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/ModelTemplate.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/ModelTemplate.java deleted file mode 100644 index d26e499..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/ModelTemplate.java +++ /dev/null @@ -1,29 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource.json; - -import com.google.gson.JsonObject; - -import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; - -public final class ModelTemplate extends BaseTemplateJson<ModelTemplate> { - - private final Object2ObjectMap<String, String> textures = new Object2ObjectArrayMap<>(); - - public ModelTemplate(String raw) { - super(raw); - } - - public ModelTemplate addTexture(String textureId, String texture) { - textures.putIfAbsent(textureId, texture); - return this; - } - - @Override - public JsonObject serialize() { - final JsonObject json = super.serialize(); - final JsonObject jsonTextures = json.get("textures").getAsJsonObject(); - textures.object2ObjectEntrySet().forEach(entry -> jsonTextures.addProperty(entry.getKey(), entry.getValue())); - return json; - } - -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/RecipeTemplate.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/RecipeTemplate.java deleted file mode 100644 index 0427c95..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/RecipeTemplate.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource.json; - -public final class RecipeTemplate extends BaseTemplateJson<RecipeTemplate> { - - public RecipeTemplate(String raw) { - super(raw); - } - -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/TagTemplate.java b/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/TagTemplate.java deleted file mode 100644 index 251df25..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/resource/json/TagTemplate.java +++ /dev/null @@ -1,33 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.resource.json; - -import java.util.Set; -import java.util.function.Supplier; - -import com.google.common.collect.Sets; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; - -public final class TagTemplate extends BaseTemplateJson<TagTemplate> { - - public static final Supplier<TagTemplate> DEFAULT = () -> new TagTemplate("{\"replace\":false,\"values\":[]}"); - - private final Set<String> values = Sets.newHashSet(); - - public TagTemplate(String raw) { - super(raw); - } - - public TagTemplate addValue(String value) { - values.add(value); - return this; - } - - @Override - public JsonObject serialize() { - final JsonObject json = super.serialize(); - final JsonArray jsonValues = json.get("values").getAsJsonArray(); - values.forEach(jsonValues::add); - return json; - } - -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/staticdata/BlockGroupSchema.java b/src/main/java/io/github/debuggyteam/architecture_extensions/staticdata/BlockGroupSchema.java deleted file mode 100644 index 8a957f4..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/staticdata/BlockGroupSchema.java +++ /dev/null @@ -1,105 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.staticdata; - -import java.util.HashSet; -import java.util.Locale; -import java.util.Optional; -import java.util.Set; -import java.util.function.Function; -import java.util.function.Supplier; - -import com.google.gson.GsonBuilder; - -import io.github.debuggyteam.architecture_extensions.ArchitectureExtensions; -import io.github.debuggyteam.architecture_extensions.api.BlockGroup; -import io.github.debuggyteam.architecture_extensions.api.BlockType; -import io.github.debuggyteam.architecture_extensions.api.MetaBlockType; -import io.github.debuggyteam.architecture_extensions.api.RecipeConfigurator; -import io.github.debuggyteam.architecture_extensions.api.TextureConfiguration; -import io.github.debuggyteam.architecture_extensions.util.MapColors; -import io.github.debuggyteam.architecture_extensions.util.SafeRenderLayer; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.block.MapColor; -import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; - -public class BlockGroupSchema { - public String name; - public String base_block; - public String textures; - public String recipes; - public String map_color; - public String[] types_to_generate; - public String only_if_present; - public String render_layer; - - public BlockGroupSchema() { - name = null; - base_block = "minecraft:air"; - types_to_generate = new String[0]; - } - - @SuppressWarnings("unchecked") - private static <T> Optional<T> reflectField(Class<?> originClass, String name) { - try { - return Optional.of((T) originClass.getDeclaredField(name).get(null)); - } catch (Exception ex) { - return Optional.empty(); - } - } - - public BlockGroup createBlockGroup() { - Identifier baseBlockId = new Identifier(base_block); - Supplier<Block> getter = () -> { - Block block = Registries.BLOCK.get(baseBlockId); - return (block == Blocks.AIR) ? null : block; - }; - Identifier baseId = baseBlockId; - if (name != null) baseId = new Identifier(baseBlockId.getNamespace(), name); - - TextureConfiguration textureConfig = (textures.contains(":")) ? TextureConfiguration.create(it -> textures, it -> textures, it -> textures, it -> textures) : - BlockGroupSchema.<Function<Identifier, TextureConfiguration>>reflectField(TextureConfiguration.class, textures.toUpperCase(Locale.ROOT)) - .orElse(TextureConfiguration.ALL).apply(baseId); - RecipeConfigurator recipeConfig = BlockGroupSchema.<RecipeConfigurator>reflectField(RecipeConfigurator.class, recipes.toUpperCase(Locale.ROOT)) - .orElse(RecipeConfigurator.STONECUTTER); - Optional<MapColor> mapColor = MapColors.byName(map_color); - - if (render_layer == null) render_layer = "solid"; - SafeRenderLayer renderLayer = BlockGroupSchema.<SafeRenderLayer>reflectField(SafeRenderLayer.class, render_layer.toUpperCase(Locale.ROOT)).orElse(SafeRenderLayer.SOLID); - - return BlockGroup.of( - new BlockGroup.GroupedBlock(baseId, baseBlockId, getter, textureConfig, recipeConfig, mapColor, renderLayer) - ); - } - - public Set<BlockType> getBlockTypes() { - Set<BlockType> result = new HashSet<>(); - - for(String typeToGenerate : types_to_generate) { - if (typeToGenerate.startsWith("#")) { - typeToGenerate = typeToGenerate.substring(1); - Optional<MetaBlockType> metaType = BlockGroupSchema.<MetaBlockType>reflectField(MetaBlockType.class, typeToGenerate.toUpperCase(Locale.ROOT)); - if (metaType.isPresent()) { - for(BlockType t : metaType.get().blockTypes()) result.add(t); - } else { - ArchitectureExtensions.LOGGER.warn("A file requested a nonexistent meta-type '#" + typeToGenerate + "'."); - } - continue; - } - - BlockType blockType = BlockGroupSchema.<BlockType>reflectField(BlockType.class, typeToGenerate.toUpperCase(Locale.ROOT)).orElse(null); - if (blockType != null) { - result.add(blockType); - } else { - ArchitectureExtensions.LOGGER.warn("A file requested a nonexistent block type '" + typeToGenerate + "'."); - } - } - - return result; - } - - @Override - public String toString() { - return new GsonBuilder().create().toJson(this); - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/util/LRUHashMap.java b/src/main/java/io/github/debuggyteam/architecture_extensions/util/LRUHashMap.java deleted file mode 100644 index deb7fc5..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/util/LRUHashMap.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.util; - -import java.util.LinkedHashMap; -import java.util.Map; - -public final class LRUHashMap<K, V> extends LinkedHashMap<K, V> { - private final int maxSize; - - public LRUHashMap(int maxSize) { - super((int) Math.ceil(maxSize / .75f) + 1, .75f); - this.maxSize = maxSize; - } - - @Override - protected boolean removeEldestEntry(Map.Entry<K, V> entry) { - return size() > maxSize; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/util/MapColors.java b/src/main/java/io/github/debuggyteam/architecture_extensions/util/MapColors.java deleted file mode 100644 index 49ed1c4..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/util/MapColors.java +++ /dev/null @@ -1,77 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.util; - -import java.util.Optional; - -import net.minecraft.block.MapColor; - -public class MapColors { - public static Optional<MapColor> byName(String name) { - return switch(name) { - case "none" -> Optional.empty(); - - case "grass" -> Optional.of(MapColor.GRASS); - case "sand" -> Optional.of(MapColor.SAND); - case "wool" -> Optional.of(MapColor.WOOL); - case "fire" -> Optional.of(MapColor.FIRE); - case "ice" -> Optional.of(MapColor.ICE); - case "metal" -> Optional.of(MapColor.METAL); - case "plant" -> Optional.of(MapColor.PLANT); - case "snow" -> Optional.of(MapColor.SNOW); - case "clay" -> Optional.of(MapColor.CLAY); - case "dirt" -> Optional.of(MapColor.DIRT); - case "stone" -> Optional.of(MapColor.STONE); - case "water" -> Optional.of(MapColor.WATER); - case "wood" -> Optional.of(MapColor.WOOD); - case "quartz" -> Optional.of(MapColor.QUARTZ); - case "orange" -> Optional.of(MapColor.ORANGE); - case "magenta" -> Optional.of(MapColor.MAGENTA); - case "light_blue" -> Optional.of(MapColor.LIGHT_BLUE); - case "yellow" -> Optional.of(MapColor.YELLOW); - case "lime" -> Optional.of(MapColor.LIME); - case "pink" -> Optional.of(MapColor.PINK); - case "gray" -> Optional.of(MapColor.GRAY); - case "light_gray" -> Optional.of(MapColor.LIGHT_GRAY); - case "cyan" -> Optional.of(MapColor.CYAN); - case "purple" -> Optional.of(MapColor.PURPLE); - case "blue" -> Optional.of(MapColor.BLUE); - case "brown" -> Optional.of(MapColor.BROWN); - case "green" -> Optional.of(MapColor.GREEN); - case "red" -> Optional.of(MapColor.RED); - case "black" -> Optional.of(MapColor.BLACK); - case "gold" -> Optional.of(MapColor.GOLD); - case "diamond" -> Optional.of(MapColor.DIAMOND); - case "lapis" -> Optional.of(MapColor.LAPIS); - case "emerald" -> Optional.of(MapColor.EMERALD); - case "podzol" -> Optional.of(MapColor.PODZOL); - case "nether" -> Optional.of(MapColor.NETHER); - case "white_terracotta" -> Optional.of(MapColor.WHITE_TERRACOTTA); - case "orange_terracotta" -> Optional.of(MapColor.ORANGE_TERRACOTTA); - case "magenta_terracotta" -> Optional.of(MapColor.MAGENTA_TERRACOTTA); - case "light_blue_terracotta" -> Optional.of(MapColor.LIGHT_BLUE_TERRACOTTA); - case "yellow_terracotta" -> Optional.of(MapColor.YELLOW_TERRACOTTA); - case "lime_terracotta" -> Optional.of(MapColor.LIME_TERRACOTTA); - case "pink_terracotta" -> Optional.of(MapColor.PINK_TERRACOTTA); - case "gray_terracotta" -> Optional.of(MapColor.GRAY_TERRACOTTA); - case "light_gray_terracotta" -> Optional.of(MapColor.LIGHT_GRAY_TERRACOTTA); - case "cyan_terracotta" -> Optional.of(MapColor.CYAN_TERRACOTTA); - case "purple_terracotta" -> Optional.of(MapColor.PURPLE_TERRACOTTA); - case "blue_terracotta" -> Optional.of(MapColor.BLUE_TERRACOTTA); - case "brown_terracotta" -> Optional.of(MapColor.BROWN_TERRACOTTA); - case "green_terracotta" -> Optional.of(MapColor.GREEN_TERRACOTTA); - case "red_terracotta" -> Optional.of(MapColor.RED_TERRACOTTA); - case "black_terracotta" -> Optional.of(MapColor.BLACK_TERRACOTTA); - case "crimson_nylium" -> Optional.of(MapColor.CRIMSON_NYLIUM); - case "crimson_stem" -> Optional.of(MapColor.CRIMSON_STEM); - case "crimson_hyphae" -> Optional.of(MapColor.CRIMSON_HYPHAE); - case "warped_nylium" -> Optional.of(MapColor.WARPED_NYLIUM); - case "warped_stem" -> Optional.of(MapColor.WARPED_STEM); - case "warped_hyphae" -> Optional.of(MapColor.WARPED_HYPHAE); - case "warped_wart_block" -> Optional.of(MapColor.WARPED_WART_BLOCK); - case "deepslate" -> Optional.of(MapColor.DEEPSLATE); - case "raw_iron" -> Optional.of(MapColor.RAW_IRON); - case "glow_lichen" -> Optional.of(MapColor.GLOW_LICHEN); - - default -> Optional.of(MapColor.GRAY); - }; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/util/SafeRenderLayer.java b/src/main/java/io/github/debuggyteam/architecture_extensions/util/SafeRenderLayer.java deleted file mode 100644 index 070e4ed..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/util/SafeRenderLayer.java +++ /dev/null @@ -1,34 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.util; - -import java.util.function.Supplier; - -import org.quiltmc.loader.api.minecraft.ClientOnly; - -import net.minecraft.client.render.RenderLayer; - -public enum SafeRenderLayer implements @ClientOnly Supplier<RenderLayer> { - SOLID(0), - TRANSLUCENT(2), - CUTOUT(1); - - private final int priority; - - SafeRenderLayer(int priority) { - this.priority = priority; - } - - @ClientOnly - @Override - public RenderLayer get() { - return switch (this) { - case SOLID -> RenderLayer.getSolid(); - case TRANSLUCENT -> RenderLayer.getTranslucent(); - case CUTOUT -> RenderLayer.getCutout(); - }; - } - - public static SafeRenderLayer choose(SafeRenderLayer first, SafeRenderLayer second) { - if (second.priority > first.priority) return second; - return first; - } -} diff --git a/src/main/java/io/github/debuggyteam/architecture_extensions/util/VoxelHelper.java b/src/main/java/io/github/debuggyteam/architecture_extensions/util/VoxelHelper.java deleted file mode 100644 index 2ac80b6..0000000 --- a/src/main/java/io/github/debuggyteam/architecture_extensions/util/VoxelHelper.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.github.debuggyteam.architecture_extensions.util; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.util.shape.VoxelShape; - -public class VoxelHelper { - public static boolean testVoxel(VoxelShape shape, int x, int y, int z) { - - List<Boolean> hits = new ArrayList<>(); - shape.forEachBox((x1, y1, z1, x2, y2, z2) -> { - int x1i = (int) (x1 * 16); - int y1i = (int) (y1 * 16); - int z1i = (int) (z1 * 16); - int x2i = (int) (x2 * 16); - int y2i = (int) (y2 * 16); - int z2i = (int) (z2 * 16); - - if (x >= x1i && y >= y1i && z >= z1i && x < x2i && y < y2i && z < z2i) { - hits.add(Boolean.valueOf(true)); - } - }); - - return !hits.isEmpty(); - } -} diff --git a/src/main/resources/architecture_extensions.mixins.json b/src/main/resources/architecture_extensions.mixins.json deleted file mode 100644 index c753759..0000000 --- a/src/main/resources/architecture_extensions.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "io.github.debuggyteam.architecture_extensions.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [], - "client": [ - ], - "injectors": { - "defaultRequire": 1 - } -} diff --git a/src/main/resources/assets/architecture_extensions/blockstates/debuggy_block.json b/src/main/resources/assets/architecture_extensions/blockstates/debuggy_block.json deleted file mode 100644 index 898e95b..0000000 --- a/src/main/resources/assets/architecture_extensions/blockstates/debuggy_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "architecture_extensions:block/peculiar/debuggy_block" - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/blockstates/end_rod_nubless.json b/src/main/resources/assets/architecture_extensions/blockstates/end_rod_nubless.json deleted file mode 100644 index 0835f11..0000000 --- a/src/main/resources/assets/architecture_extensions/blockstates/end_rod_nubless.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "variants": { - "facing=down": { - "model": "architecture_extensions:block/peculiar/end_rod_nubless", - "x": 180 - }, - "facing=east": { - "model": "architecture_extensions:block/peculiar/end_rod_nubless", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "architecture_extensions:block/peculiar/end_rod_nubless", - "x": 90 - }, - "facing=south": { - "model": "architecture_extensions:block/peculiar/end_rod_nubless", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "architecture_extensions:block/peculiar/end_rod_nubless" - }, - "facing=west": { - "model": "architecture_extensions:block/peculiar/end_rod_nubless", - "x": 90, - "y": 270 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/blockstates/fake_end_portal_block.json b/src/main/resources/assets/architecture_extensions/blockstates/fake_end_portal_block.json deleted file mode 100644 index 3e95ebc..0000000 --- a/src/main/resources/assets/architecture_extensions/blockstates/fake_end_portal_block.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "": { "model": "architecture_extensions:block/peculiar/fake_end_portal_block" } - } -} diff --git a/src/main/resources/assets/architecture_extensions/lang/en_us.json b/src/main/resources/assets/architecture_extensions/lang/en_us.json deleted file mode 100644 index e730198..0000000 --- a/src/main/resources/assets/architecture_extensions/lang/en_us.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "itemGroup.architecture_extensions.building_blocks": "Arch-Ex Building Blocks", - - "block.architecture_extensions.end_rod_nubless": "End Rod Nubless", - "block.architecture_extensions.debuggy_block": "Oddly Colored Block", - "block.architecture_extensions.fake_end_portal_block": "Starry Night Sky Block", - - "architecture_extensions.block_type_block": "%s %s", - - "architecture_extensions.block_type.arch": "Arch", - "architecture_extensions.block_type.round_arch": "Arch", - "architecture_extensions.block_type.beam": "Beam", - "architecture_extensions.block_type.crown_molding": "Crown Molding", - "architecture_extensions.block_type.curve": "Curve", - "architecture_extensions.block_type.facade": "Facade", - "architecture_extensions.block_type.fence_post": "Fence Post", - "architecture_extensions.block_type.round_fence_post": "Fence Post", - "architecture_extensions.block_type.h_beam": "H Beam", - "architecture_extensions.block_type.i_beam": "I Beam", - "architecture_extensions.block_type.joist": "Joist", - "architecture_extensions.block_type.lattice": "Lattice", - "architecture_extensions.block_type.post_cap": "Post Cap", - "architecture_extensions.block_type.post_lantern": "Post Lantern", - "architecture_extensions.block_type.rod": "Rod", - "architecture_extensions.block_type.roof": "Roof", - "architecture_extensions.block_type.transom": "Transom", - "architecture_extensions.block_type.tube_metal": "Tube Metal", - "architecture_extensions.block_type.wall_column": "Pilaster", - "architecture_extensions.block_type.wall_post": "Wall Post", - "architecture_extensions.block_type.octagonal_column": "Octagonal Column", - - "architecture_extensions.grouped_block.debuggy_block": "Debuggy Block", - - "architecture_extensions.grouped_block.bamboo": "Bamboo", - - "architecture_extensions.grouped_block.iron": "Iron", - "architecture_extensions.grouped_block.copper": "Copper", - - "architecture_extensions.grouped_block.dirt": "Dirt", - "architecture_extensions.grouped_block.sand": "Sand", - "architecture_extensions.grouped_block.red_sand": "Red Sand", - - "architecture_extensions.grouped_block.stone": "Stone", - "architecture_extensions.grouped_block.smooth_stone": "Smooth Stone", - "architecture_extensions.grouped_block.granite": "Granite", - "architecture_extensions.grouped_block.diorite": "Diorite", - "architecture_extensions.grouped_block.andesite": "Andesite", - "architecture_extensions.grouped_block.calcite": "Calcite", - "architecture_extensions.grouped_block.tuff": "Tuff", - "architecture_extensions.grouped_block.dripstone": "Dripstone", - "architecture_extensions.grouped_block.obsidian": "Obsidian", - "architecture_extensions.grouped_block.glowstone": "Glowstone", - "architecture_extensions.grouped_block.deepslate": "Deepslate", - "architecture_extensions.grouped_block.sandstone": "Sandstone", - "architecture_extensions.grouped_block.smooth_sandstone": "Smooth Sandstone", - "architecture_extensions.grouped_block.red_sandstone": "Red Sandstone", - "architecture_extensions.grouped_block.smooth_red_sandstone": "Smooth Red Sandstone", - "architecture_extensions.grouped_block.blackstone": "Blackstone", - "architecture_extensions.grouped_block.end_stone": "End Stone", - "architecture_extensions.grouped_block.raw_iron": "Raw Iron", - "architecture_extensions.grouped_block.raw_copper": "Raw Copper", - "architecture_extensions.grouped_block.raw_gold": "Raw Gold", - - "architecture_extensions.grouped_block.prismarine": "Prismarine", - "architecture_extensions.grouped_block.sea_lantern": "Sea", - - "architecture_extensions.grouped_block.cobblestone": "Cobblestone", - "architecture_extensions.grouped_block.mossy_cobblestone": "Mossy Cobblestone", - "architecture_extensions.grouped_block.cobbled_deepslate": "Cobbled Deepslate", - "architecture_extensions.grouped_block.polished_deepslate": "Polished Deepslate", - "architecture_extensions.grouped_block.polished_blackstone": "Polished Blackstone", - - "architecture_extensions.grouped_block.oak": "Oak", - "architecture_extensions.grouped_block.spruce": "Spruce", - "architecture_extensions.grouped_block.birch": "Birch", - "architecture_extensions.grouped_block.jungle": "Jungle", - "architecture_extensions.grouped_block.acacia": "Acacia", - "architecture_extensions.grouped_block.cherry": "Cherry", - "architecture_extensions.grouped_block.dark_oak": "Dark Oak", - "architecture_extensions.grouped_block.mangrove": "Mangrove", - "architecture_extensions.grouped_block.crimson": "Crimson", - "architecture_extensions.grouped_block.warped": "Warped", - - "architecture_extensions.grouped_block.stone_brick": "Stone Brick", - "architecture_extensions.grouped_block.cracked_stone_brick": "Cracked Stone Brick", - "architecture_extensions.grouped_block.mossy_stone_brick": "Mossy Stone Brick", - "architecture_extensions.grouped_block.deepslate_brick": "Deepslate Brick", - "architecture_extensions.grouped_block.cracked_deepslate_brick": "Cracked Deepslate Brick", - "architecture_extensions.grouped_block.brick": "Brick", - "architecture_extensions.grouped_block.mud_brick": "Mud Brick", - "architecture_extensions.grouped_block.prismarine_brick": "Prismarine Brick", - "architecture_extensions.grouped_block.nether_brick": "Nether Brick", - "architecture_extensions.grouped_block.cracked_nether_brick": "Cracked Nether Brick", - "architecture_extensions.grouped_block.red_nether_brick": "Red Nether Brick", - "architecture_extensions.grouped_block.polished_blackstone_brick": "Cracked Polished Blackstone Brick", - "architecture_extensions.grouped_block.cracked_polished_blackstone_brick": "Stone Brick", - "architecture_extensions.grouped_block.end_stone_brick": "End Stone Brick", - - "architecture_extensions.grouped_block.deepslate_tile": "Deepslate Tile", - "architecture_extensions.grouped_block.cracked_deepslate_tile": "Cracked Deepslate Tile", - "architecture_extensions.grouped_block.dark_prismarine": "Dark Prismarine", - "architecture_extensions.grouped_block.purpur": "Purpur", - - "architecture_extensions.grouped_block.quartz": "Quartz", - "architecture_extensions.grouped_block.smooth_quartz": "Smooth Quartz", - - "architecture_extensions.grouped_block.terracotta": "Terracotta", - "architecture_extensions.grouped_block.white_terracotta": "White Terracotta", - "architecture_extensions.grouped_block.light_gray_terracotta": "Light Gray Terracotta", - "architecture_extensions.grouped_block.gray_terracotta": "Gray Terracotta", - "architecture_extensions.grouped_block.black_terracotta": "Black Terracotta", - "architecture_extensions.grouped_block.brown_terracotta": "Brown Terracotta", - "architecture_extensions.grouped_block.red_terracotta": "Red Terracotta", - "architecture_extensions.grouped_block.orange_terracotta": "Orange Terracotta", - "architecture_extensions.grouped_block.yellow_terracotta": "Yellow Terracotta", - "architecture_extensions.grouped_block.lime_terracotta": "Lime Terracotta", - "architecture_extensions.grouped_block.green_terracotta": "Green Terracotta", - "architecture_extensions.grouped_block.cyan_terracotta": "Cyan Terracotta", - "architecture_extensions.grouped_block.light_blue_terracotta": "Light Blue Terracotta", - "architecture_extensions.grouped_block.blue_terracotta": "Blue Terracotta", - "architecture_extensions.grouped_block.purple_terracotta": "Purple Terracotta", - "architecture_extensions.grouped_block.magenta_terracotta": "Magenta Terracotta", - "architecture_extensions.grouped_block.pink_terracotta": "Pink Terracotta", - - "architecture_extensions.grouped_block.white_concrete": "White Concrete", - "architecture_extensions.grouped_block.light_gray_concrete": "Light Gray Concrete", - "architecture_extensions.grouped_block.gray_concrete": "Gray Concrete", - "architecture_extensions.grouped_block.black_concrete": "Black Concrete", - "architecture_extensions.grouped_block.brown_concrete": "Brown Concrete", - "architecture_extensions.grouped_block.red_concrete": "Red Concrete", - "architecture_extensions.grouped_block.orange_concrete": "Orange Concrete", - "architecture_extensions.grouped_block.yellow_concrete": "Yellow Concrete", - "architecture_extensions.grouped_block.lime_concrete": "Lime Concrete", - "architecture_extensions.grouped_block.green_concrete": "Green Concrete", - "architecture_extensions.grouped_block.cyan_concrete": "Cyan Concrete", - "architecture_extensions.grouped_block.light_blue_concrete": "Light Blue Concrete", - "architecture_extensions.grouped_block.blue_concrete": "Blue Concrete", - "architecture_extensions.grouped_block.purple_concrete": "Purple Concrete", - "architecture_extensions.grouped_block.magenta_concrete": "Magenta Concrete", - "architecture_extensions.grouped_block.pink_concrete": "Pink Concrete", - - "architecture_extensions.grouped_block.white_concrete_powder": "White Concrete Powder", - "architecture_extensions.grouped_block.light_gray_concrete_powder": "Light Gray Concrete Powder", - "architecture_extensions.grouped_block.gray_concrete_powder": "Gray Concrete Powder", - "architecture_extensions.grouped_block.black_concrete_powder": "Black Concrete Powder", - "architecture_extensions.grouped_block.brown_concrete_powder": "Brown Concrete Powder", - "architecture_extensions.grouped_block.red_concrete_powder": "Red Concrete Powder", - "architecture_extensions.grouped_block.orange_concrete_powder": "Orange Concrete Powder", - "architecture_extensions.grouped_block.yellow_concrete_powder": "Yellow Concrete Powder", - "architecture_extensions.grouped_block.lime_concrete_powder": "Lime Concrete Powder", - "architecture_extensions.grouped_block.green_concrete_powder": "Green Concrete Powder", - "architecture_extensions.grouped_block.cyan_concrete_powder": "Cyan Concrete Powder", - "architecture_extensions.grouped_block.light_blue_concrete_powder": "Light Blue Concrete Powder", - "architecture_extensions.grouped_block.blue_concrete_powder": "Blue Concrete Powder", - "architecture_extensions.grouped_block.purple_concrete_powder": "Purple Concrete Powder", - "architecture_extensions.grouped_block.magenta_concrete_powder": "Magenta Concrete Powder", - "architecture_extensions.grouped_block.pink_concrete_powder": "Pink Concrete Powder", - - "architecture_extensions.grouped_block.glass": "Glass", - "architecture_extensions.grouped_block.white_stained_glass": "White Stained Glass", - "architecture_extensions.grouped_block.light_gray_stained_glass": "Light Gray Stained Glass", - "architecture_extensions.grouped_block.gray_stained_glass": "Gray Stained Glass", - "architecture_extensions.grouped_block.black_stained_glass": "Black Stained Glass", - "architecture_extensions.grouped_block.brown_stained_glass": "Brown Stained Glass", - "architecture_extensions.grouped_block.red_stained_glass": "Red Stained Glass", - "architecture_extensions.grouped_block.orange_stained_glass": "Orange Stained Glass", - "architecture_extensions.grouped_block.yellow_stained_glass": "Yellow Stained Glass", - "architecture_extensions.grouped_block.lime_stained_glass": "Lime Stained Glass", - "architecture_extensions.grouped_block.green_stained_glass": "Green Stained Glass", - "architecture_extensions.grouped_block.cyan_stained_glass": "Cyan Stained Glass", - "architecture_extensions.grouped_block.light_blue_stained_glass": "Light Blue Stained Glass", - "architecture_extensions.grouped_block.blue_stained_glass": "Blue Stained Glass", - "architecture_extensions.grouped_block.purple_stained_glass": "Purple Stained Glass", - "architecture_extensions.grouped_block.magenta_stained_glass": "Magenta Stained Glass", - "architecture_extensions.grouped_block.pink_stained_glass": "Pink Stained Glass", - - "architecture_extensions.i18n.missing_key": "Missing Localization: %s" -} diff --git a/src/main/resources/assets/architecture_extensions/lang/ja_jp.json b/src/main/resources/assets/architecture_extensions/lang/ja_jp.json deleted file mode 100644 index 1a7917e..0000000 --- a/src/main/resources/assets/architecture_extensions/lang/ja_jp.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "itemGroup.architecture_extensions.building_blocks": "Arch-Exビルディングブロック", - - "block.architecture_extensions.end_rod_nubless": "エンドロッド", - "block.architecture_extensions.debuggy_block": "奇妙な色のブロック", - "block.architecture_extensions.fake_end_portal_block": "星空のブロック", - - "architecture_extensions.block_type_block": "%s %s", - - "architecture_extensions.block_type.arch": "アーチ", - "architecture_extensions.block_type.round_arch": "アーチ", - "architecture_extensions.block_type.beam": "ビーム", - "architecture_extensions.block_type.crown_molding": "クラウンモールディング", - "architecture_extensions.block_type.curve": "曲線", - "architecture_extensions.block_type.facade": "外観", - "architecture_extensions.block_type.fence_post": "フェンスの支柱", - "architecture_extensions.block_type.round_fence_post": "フェンスの支柱", - "architecture_extensions.block_type.h_beam": "Hビーム", - "architecture_extensions.block_type.i_beam": "Iビーム", - "architecture_extensions.block_type.joist": "根太", - "architecture_extensions.block_type.lattice": "格子", - "architecture_extensions.block_type.post_cap": "ポストキャップ", - "architecture_extensions.block_type.post_lantern": "ポストランタン", - "architecture_extensions.block_type.rod": "ロッド", - "architecture_extensions.block_type.roof": "屋根", - "architecture_extensions.block_type.transom": "欄間", - "architecture_extensions.block_type.tube_metal": "チューブメタル", - "architecture_extensions.block_type.wall_column": "壁柱", - "architecture_extensions.block_type.wall_post": "壁掛けポスト", - "architecture_extensions.block_type.octagonal_column": "八角柱", - - "architecture_extensions.grouped_block.debuggy_block": "デバッグブロック", - - "architecture_extensions.grouped_block.bamboo": "竹", - - "architecture_extensions.grouped_block.iron": "鉄", - "architecture_extensions.grouped_block.copper": "銅", - - "architecture_extensions.grouped_block.dirt": "泥", - "architecture_extensions.grouped_block.sand": "砂", - "architecture_extensions.grouped_block.red_sand": "赤い砂", - - "architecture_extensions.grouped_block.stone": "石", - "architecture_extensions.grouped_block.smooth_stone": "滑らかな石", - "architecture_extensions.grouped_block.granite": "花崗岩", - "architecture_extensions.grouped_block.diorite": "閃緑岩", - "architecture_extensions.grouped_block.andesite": "安山岩", - "architecture_extensions.grouped_block.calcite": "方解石", - "architecture_extensions.grouped_block.tuff": "凝灰岩", - "architecture_extensions.grouped_block.dripstone": "鍾乳石", - "architecture_extensions.grouped_block.obsidian": "黒曜石", - "architecture_extensions.grouped_block.glowstone": "グロウストーン", - "architecture_extensions.grouped_block.deepslate": "深層岩", - "architecture_extensions.grouped_block.sandstone": "砂岩", - "architecture_extensions.grouped_block.smooth_sandstone": "滑らかな砂岩", - "architecture_extensions.grouped_block.red_sandstone": "赤い砂岩", - "architecture_extensions.grouped_block.smooth_red_sandstone": "滑らかな赤い砂岩", - "architecture_extensions.grouped_block.blackstone": "ブラックストーン", - "architecture_extensions.grouped_block.end_stone": "エンドストーン", - "architecture_extensions.grouped_block.raw_iron": "鉄の原石", - "architecture_extensions.grouped_block.raw_copper": "銅の原石", - "architecture_extensions.grouped_block.raw_gold": "金の原石", - - "architecture_extensions.grouped_block.prismarine": "プリズマリン", - "architecture_extensions.grouped_block.sea_lantern": "海", - - "architecture_extensions.grouped_block.cobblestone": "丸石", - "architecture_extensions.grouped_block.mossy_cobblestone": "苔むした丸石", - "architecture_extensions.grouped_block.cobbled_deepslate": "深層岩の丸石", - "architecture_extensions.grouped_block.polished_deepslate": "磨かれた深層岩", - "architecture_extensions.grouped_block.polished_blackstone": "磨かれたブラックストーン", - - "architecture_extensions.grouped_block.oak": "オーク", - "architecture_extensions.grouped_block.spruce": "トウヒ", - "architecture_extensions.grouped_block.birch": "シラカバ", - "architecture_extensions.grouped_block.jungle": "ジャングル", - "architecture_extensions.grouped_block.acacia": "アカシア", - "architecture_extensions.grouped_block.cherry": "サクラ", - "architecture_extensions.grouped_block.dark_oak": "ダークオーク", - "architecture_extensions.grouped_block.mangrove": "マングローブ", - "architecture_extensions.grouped_block.crimson": "真紅", - "architecture_extensions.grouped_block.warped": "歪んだ", - - "architecture_extensions.grouped_block.stone_brick": "石レンガ", - "architecture_extensions.grouped_block.cracked_stone_brick": "ひび割れた石レンガ", - "architecture_extensions.grouped_block.mossy_stone_brick": "苔むした石レンガ", - "architecture_extensions.grouped_block.deepslate_brick": "深層岩レンガ", - "architecture_extensions.grouped_block.cracked_deepslate_brick": "ひび割れた深層岩レンガ", - "architecture_extensions.grouped_block.brick": "レンガ", - "architecture_extensions.grouped_block.mud_brick": "泥レンガ", - "architecture_extensions.grouped_block.prismarine_brick": "プリズマリンレンガ", - "architecture_extensions.grouped_block.nether_brick": "ネザーレンガ", - "architecture_extensions.grouped_block.cracked_nether_brick": "ひび割れたネザーレンガ", - "architecture_extensions.grouped_block.red_nether_brick": "赤いネザーレンガ", - "architecture_extensions.grouped_block.polished_blackstone_brick": "ひび割れたブラックストーンレンガ", - "architecture_extensions.grouped_block.cracked_polished_blackstone_brick": "ひび割れた石レンガ", - "architecture_extensions.grouped_block.end_stone_brick": "エンドストーンレンガ", - - "architecture_extensions.grouped_block.deepslate_tile": "深層岩タイル", - "architecture_extensions.grouped_block.cracked_deepslate_tile": "ひび割れた深層岩タイル", - "architecture_extensions.grouped_block.dark_prismarine": "ダークプリズマリン", - "architecture_extensions.grouped_block.purpur": "プルプァブロック", - - "architecture_extensions.grouped_block.quartz": "クォーツブロック", - "architecture_extensions.grouped_block.smooth_quartz": "滑らかなクォーツブロック", - - "architecture_extensions.grouped_block.terracotta": "テラコッタ", - "architecture_extensions.grouped_block.white_terracotta": "白色のテラコッタ", - "architecture_extensions.grouped_block.light_gray_terracotta": " 薄灰色のテラコッタ", - "architecture_extensions.grouped_block.gray_terracotta": "灰色のテラコッタ", - "architecture_extensions.grouped_block.black_terracotta": "黒色のテラコッタ", - "architecture_extensions.grouped_block.brown_terracotta": "茶色のテラコッタ", - "architecture_extensions.grouped_block.red_terracotta": "赤色のテラコッタ", - "architecture_extensions.grouped_block.orange_terracotta": "橙色のテラコッタ", - "architecture_extensions.grouped_block.yellow_terracotta": "黄色のテラコッタ", - "architecture_extensions.grouped_block.lime_terracotta": "黄緑色のテラコッタ", - "architecture_extensions.grouped_block.green_terracotta": "緑色のテラコッタ", - "architecture_extensions.grouped_block.cyan_terracotta": "青緑色のテラコッタ", - "architecture_extensions.grouped_block.light_blue_terracotta": "空色のテラコッタ", - "architecture_extensions.grouped_block.blue_terracotta": "青色のテラコッタ", - "architecture_extensions.grouped_block.purple_terracotta": "紫色のテラコッタ", - "architecture_extensions.grouped_block.magenta_terracotta": "赤紫色のテラコッタ", - "architecture_extensions.grouped_block.pink_terracotta": "桃色のテラコッタ", - - "architecture_extensions.grouped_block.white_concrete": "白色のコンクリート", - "architecture_extensions.grouped_block.light_gray_concrete": "薄灰色のコンクリート", - "architecture_extensions.grouped_block.gray_concrete": "灰色のコンクリート", - "architecture_extensions.grouped_block.black_concrete": "黒色のコンクリート", - "architecture_extensions.grouped_block.brown_concrete": "茶色のコンクリート", - "architecture_extensions.grouped_block.red_concrete": "赤色のコンクリート", - "architecture_extensions.grouped_block.orange_concrete": "橙色のコンクリート", - "architecture_extensions.grouped_block.yellow_concrete": "黄色のコンクリート", - "architecture_extensions.grouped_block.lime_concrete": "黄緑色のコンクリート", - "architecture_extensions.grouped_block.green_concrete": "緑色のコンクリート", - "architecture_extensions.grouped_block.cyan_concrete": "青緑色のコンクリート", - "architecture_extensions.grouped_block.light_blue_concrete": "空色のコンクリート", - "architecture_extensions.grouped_block.blue_concrete": "青色のコンクリート", - "architecture_extensions.grouped_block.purple_concrete": "紫色のコンクリート", - "architecture_extensions.grouped_block.magenta_concrete": "赤紫色のコンクリート", - "architecture_extensions.grouped_block.pink_concrete": "桃色のコンクリート", - - "architecture_extensions.grouped_block.white_concrete_powder": "白色のコンクリートパウダー", - "architecture_extensions.grouped_block.light_gray_concrete_powder": "薄灰色のコンクリートパウダー", - "architecture_extensions.grouped_block.gray_concrete_powder": "灰色のコンクリートパウダー", - "architecture_extensions.grouped_block.black_concrete_powder": "黒色のコンクリートパウダー", - "architecture_extensions.grouped_block.brown_concrete_powder": "茶色のコンクリートパウダー", - "architecture_extensions.grouped_block.red_concrete_powder": "赤色のコンクリートパウダー", - "architecture_extensions.grouped_block.orange_concrete_powder": "橙色のコンクリートパウダー", - "architecture_extensions.grouped_block.yellow_concrete_powder": "黄色のコンクリートパウダー", - "architecture_extensions.grouped_block.lime_concrete_powder": "黄緑色のコンクリートパウダー", - "architecture_extensions.grouped_block.green_concrete_powder": "緑色のコンクリートパウダー", - "architecture_extensions.grouped_block.cyan_concrete_powder": "青緑色のコンクリートパウダー", - "architecture_extensions.grouped_block.light_blue_concrete_powder": "空色のコンクリートパウダー", - "architecture_extensions.grouped_block.blue_concrete_powder": "青色のコンクリートパウダー", - "architecture_extensions.grouped_block.purple_concrete_powder": "紫色のコンクリートパウダー", - "architecture_extensions.grouped_block.magenta_concrete_powder": "赤紫色のコンクリートパウダー", - "architecture_extensions.grouped_block.pink_concrete_powder": "桃色のコンクリートパウダー", - - "architecture_extensions.grouped_block.glass": "ガラス", - "architecture_extensions.grouped_block.white_stained_glass": "白色の色付きガラス", - "architecture_extensions.grouped_block.light_gray_stained_glass": "薄灰色の色付きガラス", - "architecture_extensions.grouped_block.gray_stained_glass": "灰色の色付きガラス", - "architecture_extensions.grouped_block.black_stained_glass": "黒色の色付きガラス", - "architecture_extensions.grouped_block.brown_stained_glass": "茶色の色付きガラス", - "architecture_extensions.grouped_block.red_stained_glass": "赤色の色付きガラス", - "architecture_extensions.grouped_block.orange_stained_glass": "橙色の色付きガラス", - "architecture_extensions.grouped_block.yellow_stained_glass": "黄色の色付きガラス", - "architecture_extensions.grouped_block.lime_stained_glass": "黄緑色の色付きガラス", - "architecture_extensions.grouped_block.green_stained_glass": "緑色の色付きガラス", - "architecture_extensions.grouped_block.cyan_stained_glass": "青緑色の色付きガラス", - "architecture_extensions.grouped_block.light_blue_stained_glass": "空色の色付きガラス", - "architecture_extensions.grouped_block.blue_stained_glass": "青色の色付きガラス", - "architecture_extensions.grouped_block.purple_stained_glass": "紫色の色付きガラス", - "architecture_extensions.grouped_block.magenta_stained_glass": "赤紫色の色付きガラス", - "architecture_extensions.grouped_block.pink_stained_glass": "桃色の色付きガラス", - - "architecture_extensions.i18n.missing_key": "翻訳がありません: %s" -} diff --git a/src/main/resources/assets/architecture_extensions/lang/uk_ua.json b/src/main/resources/assets/architecture_extensions/lang/uk_ua.json deleted file mode 100644 index c404fac..0000000 --- a/src/main/resources/assets/architecture_extensions/lang/uk_ua.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "itemGroup.architecture_extensions.building_blocks": "Будівельні блоки Arch-Ex", - "block.architecture_extensions.end_rod_nubless": "Безосновний стрижень Енду", - "block.architecture_extensions.debuggy_block": "Дивно забарвлений блок", - "block.architecture_extensions.fake_end_portal_block": "Блок зоревого нічного неба", - "architecture_extensions.block_type_block": "%s у формі %s", - "architecture_extensions.block_type.arch": "дуги", - "architecture_extensions.block_type.round_arch": "дуги", - "architecture_extensions.block_type.beam": "балки", - "architecture_extensions.block_type.crown_molding": "плінтуса", - "architecture_extensions.block_type.facade": "фасаду", - "architecture_extensions.block_type.fence_post": "парканного стовпа", - "architecture_extensions.block_type.round_fence_post": "парканного стовпа", - "architecture_extensions.block_type.h_beam": "Н-подібної балки", - "architecture_extensions.block_type.i_beam": "І-подібної балки", - "architecture_extensions.block_type.joist": "Перекладина", - "architecture_extensions.block_type.lattice": "решітки", - "architecture_extensions.block_type.post_cap": "шапки стовпа", - "architecture_extensions.block_type.post_lantern": "ліхтаря стовпа", - "architecture_extensions.block_type.rod": "стрижня", - "architecture_extensions.block_type.roof": "покрівлі", - "architecture_extensions.block_type.transom": "ригеля", - "architecture_extensions.block_type.tube_metal": "труби", - "architecture_extensions.block_type.wall_column": "стінової колони", - "architecture_extensions.block_type.wall_post": "стінового стовпа", - "architecture_extensions.block_type.octagonal_column": "восьмикутної колони", - "architecture_extensions.grouped_block.bamboo": "Бамбук", - "architecture_extensions.grouped_block.iron": "Залізо", - "architecture_extensions.grouped_block.copper": "Мідь", - "architecture_extensions.grouped_block.stone": "Камінь", - "architecture_extensions.grouped_block.granite": "Граніт", - "architecture_extensions.grouped_block.diorite": "Діорит", - "architecture_extensions.grouped_block.andesite": "Андезит", - "architecture_extensions.grouped_block.calcite": "Кальцит", - "architecture_extensions.grouped_block.tuff": "Туф", - "architecture_extensions.grouped_block.dripstone": "Сталактит", - "architecture_extensions.grouped_block.obsidian": "Обсидіан", - "architecture_extensions.grouped_block.glowstone": "Світлокамінь", - "architecture_extensions.grouped_block.deepslate": "Глибосланець", - "architecture_extensions.grouped_block.sandstone": "Пісковик", - "architecture_extensions.grouped_block.red_sandstone": "Червоний пісковик", - "architecture_extensions.grouped_block.blackstone": "Чорнокамінь", - "architecture_extensions.grouped_block.end_stone": "Камінь Енду", - "architecture_extensions.grouped_block.raw_iron": "Необроблене залізо", - "architecture_extensions.grouped_block.raw_copper": "Необроблена мідь", - "architecture_extensions.grouped_block.raw_gold": "Необроблене золото", - "architecture_extensions.grouped_block.prismarine": "Призмарин", - "architecture_extensions.grouped_block.sea_lantern": "Море", - "architecture_extensions.grouped_block.cobblestone": "Кругляк", - "architecture_extensions.grouped_block.mossy_cobblestone": "Моховитий кругляк", - "architecture_extensions.grouped_block.cobbled_deepslate": "Глибосланцевий кругляк", - "architecture_extensions.grouped_block.polished_deepslate": "Полірований глибосланець", - "architecture_extensions.grouped_block.polished_blackstone": "Полірований чорнокамінь", - "architecture_extensions.grouped_block.oak": "Дуб", - "architecture_extensions.grouped_block.spruce": "Смерека", - "architecture_extensions.grouped_block.birch": "Береза", - "architecture_extensions.grouped_block.jungle": "Тропічне дерево", - "architecture_extensions.grouped_block.acacia": "Акація", - "architecture_extensions.grouped_block.cherry": "Вишня", - "architecture_extensions.grouped_block.dark_oak": "Темний дуб", - "architecture_extensions.grouped_block.mangrove": "Мангрове дерево", - "architecture_extensions.grouped_block.crimson": "Багряний гриб", - "architecture_extensions.grouped_block.warped": "Химерний гриб", - "architecture_extensions.grouped_block.stone_brick": "Кам'яна цеглина", - "architecture_extensions.grouped_block.cracked_stone_brick": "Тріснута кам'яна цегла", - "architecture_extensions.grouped_block.mossy_stone_brick": "Моховита кам’яна цегла", - "architecture_extensions.grouped_block.deepslate_brick": "Глибосланцева цегла", - "architecture_extensions.grouped_block.cracked_deepslate_brick": "Тріснута глибосланцева цегла", - "architecture_extensions.grouped_block.brick": "Цегла", - "architecture_extensions.grouped_block.mud_brick": "Лимпач", - "architecture_extensions.grouped_block.prismarine_brick": "Призмаринова цегла", - "architecture_extensions.grouped_block.nether_brick": "Незерська цегла", - "architecture_extensions.grouped_block.cracked_nether_brick": "Тріснута незерська цегла", - "architecture_extensions.grouped_block.red_nether_brick": "Червона незерська цегла", - "architecture_extensions.grouped_block.polished_blackstone_brick": "Тріснута полірована чорнокам'яна цегла", - "architecture_extensions.grouped_block.cracked_polished_blackstone_brick": "Кам'яна цегла", - "architecture_extensions.grouped_block.end_stone_brick": "Цегла з каменю Енду", - "architecture_extensions.grouped_block.deepslate_tile": "Глибосланцеві кахлі", - "architecture_extensions.grouped_block.dark_prismarine": "Темний призмарин", - "architecture_extensions.grouped_block.purpur": "Пурпур", - "architecture_extensions.grouped_block.quartz": "Кварц", - "architecture_extensions.grouped_block.smooth_quartz": "Гладкий кварц", - "architecture_extensions.grouped_block.terracotta": "Кераміка", - "architecture_extensions.grouped_block.white_terracotta": "Біла кераміка", - "architecture_extensions.grouped_block.light_gray_terracotta": "Світло-сіра кераміка", - "architecture_extensions.grouped_block.gray_terracotta": "Сіра кераміка", - "architecture_extensions.grouped_block.black_terracotta": "Чорна кераміка", - "architecture_extensions.grouped_block.brown_terracotta": "Коричнева кераміка", - "architecture_extensions.grouped_block.red_terracotta": "Червона кераміка", - "architecture_extensions.grouped_block.orange_terracotta": "Помаранчева кераміка", - "architecture_extensions.grouped_block.yellow_terracotta": "Жовта кераміка", - "architecture_extensions.grouped_block.lime_terracotta": "Лаймова кераміка", - "architecture_extensions.grouped_block.green_terracotta": "Зелена кераміка", - "architecture_extensions.grouped_block.cyan_terracotta": "Бірюзова кераміка", - "architecture_extensions.grouped_block.light_blue_terracotta": "Блакитна кераміка", - "architecture_extensions.grouped_block.blue_terracotta": "Синя кераміка", - "architecture_extensions.grouped_block.purple_terracotta": "Фіолетова кераміка", - "architecture_extensions.grouped_block.magenta_terracotta": "Пурпурова кераміка", - "architecture_extensions.grouped_block.pink_terracotta": "Рожева кераміка", - "architecture_extensions.grouped_block.white_concrete": "Білий бетон", - "architecture_extensions.grouped_block.light_gray_concrete": "Світло-сірий бетон", - "architecture_extensions.grouped_block.gray_concrete": "Сірий бетон", - "architecture_extensions.grouped_block.black_concrete": "Чорний бетон", - "architecture_extensions.grouped_block.brown_concrete": "Коричневий бетон", - "architecture_extensions.grouped_block.red_concrete": "Червоний бетон", - "architecture_extensions.grouped_block.orange_concrete": "Помаранчевий бетон", - "architecture_extensions.grouped_block.yellow_concrete": "Жовтий бетон", - "architecture_extensions.grouped_block.lime_concrete": "Лаймовий бетон", - "architecture_extensions.grouped_block.green_concrete": "Зелений бетон", - "architecture_extensions.grouped_block.cyan_concrete": "Бірюзовий бетон", - "architecture_extensions.grouped_block.light_blue_concrete": "Блакитний бетон", - "architecture_extensions.grouped_block.blue_concrete": "Синій бетон", - "architecture_extensions.grouped_block.purple_concrete": "Фіолетовий бетон", - "architecture_extensions.grouped_block.magenta_concrete": "Пурпуровий бетон", - "architecture_extensions.grouped_block.pink_concrete": "Рожевий бетон" -} diff --git a/src/main/resources/assets/architecture_extensions/lang/zh_cn.json b/src/main/resources/assets/architecture_extensions/lang/zh_cn.json deleted file mode 100644 index d4739b8..0000000 --- a/src/main/resources/assets/architecture_extensions/lang/zh_cn.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "itemGroup.architecture_extensions.building_blocks": "建筑拓展:建造方块", - - "block.architecture_extensions.end_rod_nubless": "连贯末地烛", - "block.architecture_extensions.debuggy_block": "奇怪的彩色方块", - "block.architecture_extensions.fake_end_portal_block": "璀璨星空块", - - "architecture_extensions.block_type_block": "%s%s", - - "architecture_extensions.block_type.arch": "拱", - "architecture_extensions.block_type.beam": "梁", - "architecture_extensions.block_type.crown_molding": "冠饰", - "architecture_extensions.block_type.facade": "伪装板", - "architecture_extensions.block_type.fence_post": "栅栏柱", - "architecture_extensions.block_type.h_beam": "H形梁", - "architecture_extensions.block_type.i_beam": "I形梁", - "architecture_extensions.block_type.joist": "托梁", - "architecture_extensions.block_type.lattice": "牖窗", - "architecture_extensions.block_type.post_cap": "柱顶", - "architecture_extensions.block_type.post_lantern": "柱灯", - "architecture_extensions.block_type.rod": "棍", - "architecture_extensions.block_type.roof": "屋顶", - "architecture_extensions.block_type.transom": "窗", - "architecture_extensions.block_type.tube_metal": "管柱", - "architecture_extensions.block_type.wall_column": "壁柱", - "architecture_extensions.block_type.wall_post": "柱", - - - "architecture_extensions.grouped_block.bamboo": "竹", - - "architecture_extensions.grouped_block.copper": "铜", - - "architecture_extensions.grouped_block.iron": "铁", - - "architecture_extensions.grouped_block.stone": "石头", - "architecture_extensions.grouped_block.granite": "花岗岩", - "architecture_extensions.grouped_block.diorite": "闪长岩", - "architecture_extensions.grouped_block.andesite": "安山岩", - "architecture_extensions.grouped_block.calcite": "方解石", - "architecture_extensions.grouped_block.tuff": "凝灰岩", - "architecture_extensions.grouped_block.dripstone": "滴水石", - "architecture_extensions.grouped_block.obsidian": "黑曜石", - "architecture_extensions.grouped_block.glowstone": "荧石", - "architecture_extensions.grouped_block.deepslate": "深板岩", - "architecture_extensions.grouped_block.sandstone": "砂岩", - "architecture_extensions.grouped_block.red_sandstone": "红砂岩", - "architecture_extensions.grouped_block.end_stone": "末地石", - "architecture_extensions.grouped_block.blackstone": "黑石", - - "architecture_extensions.grouped_block.prismarine": "海晶石", - "architecture_extensions.grouped_block.sea_lantern": "海晶灯", - - "architecture_extensions.grouped_block.cobblestone": "圆石", - "architecture_extensions.grouped_block.mossy_cobblestone": "苔石", - "architecture_extensions.grouped_block.cobbled_deepslate": "深板岩圆石", - "architecture_extensions.grouped_block.polished_deepslate": "磨制深板岩", - "architecture_extensions.grouped_block.polished_blackstone": "磨制黑石", - - "architecture_extensions.grouped_block.oak": "橡木", - "architecture_extensions.grouped_block.spruce": "云杉木", - "architecture_extensions.grouped_block.birch": "白桦木", - "architecture_extensions.grouped_block.jungle": "丛林木", - "architecture_extensions.grouped_block.acacia": "金合欢木", - "architecture_extensions.grouped_block.dark_oak": "深色橡木", - "architecture_extensions.grouped_block.mangrove": "红树木", - "architecture_extensions.grouped_block.crimson": "绯红菌", - "architecture_extensions.grouped_block.warped": "扭曲菌", - - "architecture_extensions.grouped_block.stone_brick": "石砖", - "architecture_extensions.grouped_block.mossy_stone_brick": "苔石砖", - "architecture_extensions.grouped_block.deepslate_brick": "深板岩砖", - "architecture_extensions.grouped_block.brick": "红砖", - "architecture_extensions.grouped_block.mud_brick": "泥砖", - "architecture_extensions.grouped_block.prismarine_brick": "海晶石砖", - "architecture_extensions.grouped_block.nether_brick": "下界砖", - "architecture_extensions.grouped_block.red_nether_brick": "红色下界砖", - "architecture_extensions.grouped_block.polished_blackstone_brick": "磨制黑石砖", - "architecture_extensions.grouped_block.end_stone_brick": "末地石砖", - - "architecture_extensions.grouped_block.deepslate_tile": "深板岩瓦", - "architecture_extensions.grouped_block.dark_prismarine": "暗海晶石", - "architecture_extensions.grouped_block.purpur": "紫珀", - - "architecture_extensions.grouped_block.quartz": "石英", - "architecture_extensions.grouped_block.smooth_quartz": "平滑石英", - - "architecture_extensions.grouped_block.terracotta": "陶瓦", - "architecture_extensions.grouped_block.white_terracotta": "白色陶瓦", - "architecture_extensions.grouped_block.light_gray_terracotta": "淡灰色陶瓦", - "architecture_extensions.grouped_block.gray_terracotta": "灰色陶瓦", - "architecture_extensions.grouped_block.black_terracotta": "黑色陶瓦", - "architecture_extensions.grouped_block.brown_terracotta": "棕色陶瓦", - "architecture_extensions.grouped_block.red_terracotta": "红色陶瓦", - "architecture_extensions.grouped_block.orange_terracotta": "橙色陶瓦", - "architecture_extensions.grouped_block.yellow_terracotta": "黄色陶瓦", - "architecture_extensions.grouped_block.lime_terracotta": "黄绿色陶瓦", - "architecture_extensions.grouped_block.green_terracotta": "绿色陶瓦", - "architecture_extensions.grouped_block.cyan_terracotta": "青色陶瓦", - "architecture_extensions.grouped_block.light_blue_terracotta": "淡蓝色陶瓦", - "architecture_extensions.grouped_block.blue_terracotta": "蓝色陶瓦", - "architecture_extensions.grouped_block.purple_terracotta": "紫色陶瓦", - "architecture_extensions.grouped_block.magenta_terracotta": "品红色陶瓦", - "architecture_extensions.grouped_block.pink_terracotta": "粉红色陶瓦", - - "architecture_extensions.grouped_block.white_concrete": "白色混凝土", - "architecture_extensions.grouped_block.light_gray_concrete": "淡灰色混凝土", - "architecture_extensions.grouped_block.gray_concrete": "灰色混凝土", - "architecture_extensions.grouped_block.black_concrete": "黑色混凝土", - "architecture_extensions.grouped_block.brown_concrete": "棕色混凝土", - "architecture_extensions.grouped_block.red_concrete": "红色混凝土", - "architecture_extensions.grouped_block.orange_concrete": "橙色混凝土", - "architecture_extensions.grouped_block.yellow_concrete": "黄色混凝土", - "architecture_extensions.grouped_block.lime_concrete": "黄绿色混凝土", - "architecture_extensions.grouped_block.green_concrete": "绿色混凝土", - "architecture_extensions.grouped_block.cyan_concrete": "青色混凝土", - "architecture_extensions.grouped_block.light_blue_concrete": "淡蓝色混凝土", - "architecture_extensions.grouped_block.blue_concrete": "蓝色混凝土", - "architecture_extensions.grouped_block.purple_concrete": "紫色混凝土", - "architecture_extensions.grouped_block.magenta_concrete": "品红色混凝土", - "architecture_extensions.grouped_block.pink_concrete": "粉红色混凝土" -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/curve.gltf b/src/main/resources/assets/architecture_extensions/models/block/curve.gltf deleted file mode 100644 index fa9801a..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/curve.gltf +++ /dev/null @@ -1,142 +0,0 @@ -{ - "asset":{ - "generator":"Khronos glTF Blender I/O v3.5.30", - "version":"2.0" - }, - "scene":0, - "scenes":[ - { - "name":"Scene", - "nodes":[ - 0 - ] - } - ], - "nodes":[ - { - "mesh":0, - "name":"Cylinder.001" - } - ], - "materials":[ - { - "doubleSided":true, - "name":"Material.003", - "pbrMetallicRoughness":{ - "baseColorTexture":{ - "index":0 - }, - "metallicFactor":0, - "roughnessFactor":0.4000000059604645 - } - } - ], - "meshes":[ - { - "name":"Cylinder.002", - "primitives":[ - { - "attributes":{ - "POSITION":0, - "TEXCOORD_0":1, - "NORMAL":2 - }, - "indices":3, - "material":0 - } - ] - } - ], - "textures":[ - { - "sampler":0, - "source":0 - } - ], - "images":[ - { - "bufferView":4, - "mimeType":"image/png", - "name":"bricks" - } - ], - "accessors":[ - { - "bufferView":0, - "componentType":5126, - "count":48, - "max":[ - 0.4999999403953552, - 0.5000000596046448, - 0.4999998211860657 - ], - "min":[ - -0.5000002384185791, - -0.5000000596046448, - -0.5000004172325134 - ], - "type":"VEC3" - }, - { - "bufferView":1, - "componentType":5126, - "count":48, - "type":"VEC2" - }, - { - "bufferView":2, - "componentType":5126, - "count":48, - "type":"VEC3" - }, - { - "bufferView":3, - "componentType":5123, - "count":84, - "type":"SCALAR" - } - ], - "bufferViews":[ - { - "buffer":0, - "byteLength":576, - "byteOffset":0, - "target":34962 - }, - { - "buffer":0, - "byteLength":384, - "byteOffset":576, - "target":34962 - }, - { - "buffer":0, - "byteLength":576, - "byteOffset":960, - "target":34962 - }, - { - "buffer":0, - "byteLength":168, - "byteOffset":1536, - "target":34963 - }, - { - "buffer":0, - "byteLength":301, - "byteOffset":1704 - } - ], - "samplers":[ - { - "magFilter":9728, - "minFilter":9984 - } - ], - "buffers":[ - { - "byteLength":2008, - "uri":"data:application/octet-stream;base64,AgAAvwEAAD8CAAC/AgAAv9aN7j4u+Ha+AgAAv9aN7j4u+Ha+AgAAv9aN7j4u+Ha+AgAAv65nuz4AAIi0AgAAv65nuz4AAIi0AgAAv65nuz4AAIi0AgAAv8wTVD64E1Q+AgAAv8wTVD64E1Q+AgAAv8wTVD64E1Q+BAAAvwAAALSoZ7s+BAAAvwAAALSoZ7s+BAAAvwAAALSoZ7s+BAAAvyv4dr7Mje4+BAAAvyv4dr7Mje4+BAAAvyv4dr7Mje4++v//Pvr//74FAAC/+v//Pvr//74FAAC/+v//Pvr//74FAAC/BAAAv/r//74HAAC/BAAAv/r//74HAAC/BAAAv/r//74HAAC/+P//PgEAAL/6//8+BAAAv/7//772//8+/v//PgEAAD8BAAC//v//PgEAAD8BAAC/AgAAvwEAAD8DAAC/AgAAvwEAAD8DAAC/BAAAvwEAAL/2//8+BAAAvwEAAL/2//8+/v//PgEAAD8AAAC//P//PtaN7j4m+Ha+/P//PtaN7j4m+Ha+/P//PtaN7j4m+Ha+/P//Pq5nuz4AAAC0/P//Pq5nuz4AAAC0/P//Pq5nuz4AAAC0/P//PswTVD7AE1Q+/P//PswTVD7AE1Q+/P//PswTVD7AE1Q++P//PgAAQLSsZ7s++P//PgAAQLSsZ7s++P//PgAAQLSsZ7s++P//Pi/4dr7Qje4++P//Pi/4dr7Qje4++P//Pi/4dr7Qje4++P//PgAAAL/6//8++P//PgAAAL/6//8+ANfUOwDd1DuA2NQ7uDUwPoDY1Du4NTA+UoqEPiDzCz0A2tQ7QuKsPgDa1DtC4qw+BwAAP+BDCT4A2tQ73tQAPwDa1Dve1AA/QgI1P4z7lT4A2tQ7kTgrPwDa1DuROCs/Ea9dPwcAAD+A29Q7SJxVP4Db1DtInFU/0kB3P+O6PT8AAAA0AACAPwAAADRMVn4/bvl/P3D5fz8AANI4bvl/PwAAgD8AAIA/AACAP0xWfj8AAAA0AAAAAAAAgD8AAAAAcvl/PwAA0jgAAAA0AJiaOQDA0jgAgNE4AACAPwCYmjl0+X8/dPl/PwDd1DsDAIA/+v9/PwDX1Dvguj0/QPMLPf3/fz+INTA+/f9/P4g1MD4DAAA/1EMJPgAAgD9G4qw+AACAP0birD6Q+5U+hPuVPgAAgD/W1AA/AACAP9bUAD/QQwk++v//PgAAgD+LOCs/AACAP4s4Kz8A8ws92ro9PwEAgD8+nFU/AQCAPz6cVT8AYNE4avl/PwMAgD/6/38/AAAAAGTMfT/LoQU+AAAAgLaEbD9B8cM+AAAAgGTMfT/LoQU+AACAvwAAAAAAAAAAAAAAgEMcSz9R2hs/AAAAgLaEbD9B8cM+AACAvwAAAAAAAAAAAAAAgFHaGz9DHEs/AAAAgEMcSz9R2hs/AACAvwAAAAAAAACAAAAAgEHxwz62hGw/AAAAgFHaGz9DHEs/AACAvwAAAAAAAACAAAAAgMuhBT5kzH0/AAAAgEHxwz62hGw/AACAvwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAgAAAgL8AAACAAACAPwAAAIAAAACAAACAvwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAgL8AAACAAAAAgAAAgL8AAACAAAAAAAAAgL8AAACAAACAPwAAAIAAAAAAAAAAAAAAAAAAAIC/AACAvwAAAAAAAACAAAAAAAAAAAAAAIC/AACAvwAAAAAAAAAAAAAAgMuhBT5kzH0/AAAAgGTMfT/LoQU+AACAPwAAAIAAAAAAAAAAgLaEbD9B8cM+AAAAgGTMfT/LoQU+AACAPwAAAIAAAACAAAAAgEMcSz9R2hs/AAAAgLaEbD9B8cM+AACAPwAAAIAAAAAAAAAAgFHaGz9DHEs/AAAAgEMcSz9R2hs/AACAPwAAAAAAAAAAAAAAgEHxwz62hGw/AAAAgFHaGz9DHEs/AACAPwAAAAAAAACAAAAAgMuhBT5kzH0/AAAAgEHxwz62hGw/AACAPwAAAAAAAACAAAAAgMuhBT5kzH0/BwAqACYABwALACoAIAAFACQAIAABAAUADQAvACwADQAdAC8AIwAIACcAIwAEAAgAHgACACEAHgAAAAIAEQAXABUAEQAWABcAGQAUABsAGQAQABQAHwAiABIAIgAlABIAHwASABgAEgAoACsAEgArAC4AJQAoABIADwATABwAAwAaABMABgADABMAEwAPAAwADAAJABMACQAGABMACgAtACkACgAOAC0AiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2klEQVR4Xo2SoQ7CQBBE95cw2AqCJAHDB2BAYbDFYgjB4HA4JD/Bb5XMJtNMptsGMel1393mZm7js1t10HO76K7Hffc9bHqRkb8u50E9AKD7uskN7XKea9YrrvVA4dTMUu/HrV/jAKQcDchQhwLXhgDRAF/WlI3xcL+41pRn5dnAPdEv6pqJizwbMDT6om/NRBuRZwP3VHke2wMe1TtrLlUmmstgDqoZoL2KZwbqif/qVzPxUHMO3LP7Vc/O08LUO0/NAZqVcwD9m0nwjV06B86Ul3Pgnn0PGfQDd4RKtBJ9p+oAAAAOZVhJZk1NACoAAAAIAAAAAAAAANJTkwAAAABJRU5ErkJgggAAAA==" - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/octagonal_column.gltf b/src/main/resources/assets/architecture_extensions/models/block/octagonal_column.gltf deleted file mode 100644 index a5d17d5..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/octagonal_column.gltf +++ /dev/null @@ -1,145 +0,0 @@ -{ - "asset" : { - "generator" : "Khronos glTF Blender I/O v1.7.33", - "version" : "2.0" - }, - "scene" : 0, - "scenes" : [ - { - "name" : "Scene", - "nodes" : [ - 1 - ] - } - ], - "nodes" : [ - { - "mesh" : 0, - "name" : "cylinder" - }, - { - "children" : [ - 0 - ], - "name" : "Node_1" - } - ], - "materials" : [ - { - "doubleSided" : true, - "name" : "Material", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 0 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - } - ], - "meshes" : [ - { - "name" : "Mesh_0", - "primitives" : [ - { - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - }, - "indices" : 3, - "material" : 0 - } - ] - } - ], - "textures" : [ - { - "sampler" : 0, - "source" : 0 - } - ], - "images" : [ - { - "bufferView" : 4, - "mimeType" : "image/png", - "name" : "all", - "uri" : "#all" - } - ], - "accessors" : [ - { - "bufferView" : 0, - "componentType" : 5126, - "count" : 56, - "max" : [ - 0.375, - 0.5, - 0.375 - ], - "min" : [ - -0.375, - -0.5, - -0.375 - ], - "type" : "VEC3" - }, - { - "bufferView" : 1, - "componentType" : 5126, - "count" : 56, - "type" : "VEC3" - }, - { - "bufferView" : 2, - "componentType" : 5126, - "count" : 56, - "type" : "VEC2" - }, - { - "bufferView" : 3, - "componentType" : 5123, - "count" : 84, - "type" : "SCALAR" - } - ], - "bufferViews" : [ - { - "buffer" : 0, - "byteLength" : 672, - "byteOffset" : 0 - }, - { - "buffer" : 0, - "byteLength" : 672, - "byteOffset" : 672 - }, - { - "buffer" : 0, - "byteLength" : 448, - "byteOffset" : 1344 - }, - { - "buffer" : 0, - "byteLength" : 168, - "byteOffset" : 1792 - }, - { - "buffer" : 0, - "byteLength" : 269, - "byteOffset" : 1960 - } - ], - "samplers" : [ - { - "magFilter" : 9728, - "minFilter" : 9984 - } - ], - "buffers" : [ - { - "byteLength" : 2232, - "uri" : "data:application/octet-stream;base64,2g4fPgAAAL8AAMA+2g4fPgAAAL8AAMA+AADAPgAAAL/aDh8+AADAPgAAAL/aDh8+AADAPgAAAD/aDh8+AADAPgAAAD/aDh8+2g4fPgAAAD8AAMA+2g4fPgAAAD8AAMA+AADAPgAAAL/aDh8+AADAPgAAAL/aDh8+AADAPgAAAL/aDh++AADAPgAAAL/aDh++AADAPgAAAD/aDh++AADAPgAAAD/aDh++AADAPgAAAD/aDh8+AADAPgAAAD/aDh8+AADAPgAAAL/aDh++AADAPgAAAL/aDh++2g4fPgAAAL8AAMC+2g4fPgAAAL8AAMC+2g4fPgAAAD8AAMC+2g4fPgAAAD8AAMC+AADAPgAAAD/aDh++AADAPgAAAD/aDh++2g4fPgAAAL8AAMC+2g4fvgAAAL8AAMC+2g4fvgAAAD8AAMC+2g4fPgAAAD8AAMC+2g4fvgAAAL8AAMC+2g4fvgAAAL8AAMC+AADAvgAAAL/aDh++AADAvgAAAL/aDh++AADAvgAAAD/aDh++AADAvgAAAD/aDh++2g4fvgAAAD8AAMC+2g4fvgAAAD8AAMC+AADAvgAAAL/aDh++AADAvgAAAL/aDh++AADAvgAAAL/aDh8+AADAvgAAAL/aDh8+AADAvgAAAD/aDh8+AADAvgAAAD/aDh8+AADAvgAAAD/aDh++AADAvgAAAD/aDh++AADAvgAAAL/aDh8+AADAvgAAAL/aDh8+2g4fvgAAAL8AAMA+2g4fvgAAAL8AAMA+2g4fvgAAAD8AAMA+2g4fvgAAAD8AAMA+AADAvgAAAD/aDh8+AADAvgAAAD/aDh8+2g4fvgAAAL8AAMA+2g4fPgAAAL8AAMA+2g4fPgAAAD8AAMA+2g4fvgAAAD8AAMA+AAAAAP//f78AAACA9AQ1PwAAAAD0BDU/AAAAAP//f78AAACA9AQ1PwAAAAD0BDU/AAAAAP//fz8AAACA9AQ1PwAAAAD0BDU/AAAAAP//fz8AAACA9AQ1PwAAAAD0BDU/AAAAAAAAgL8AAACAAACAPwAAAAAAAACAAAAAAAAAgL8AAACAAACAPwAAAAAAAACAAAAAAAAAgD8AAACAAACAPwAAAAAAAACAAAAAAAAAgD8AAACAAACAPwAAAAAAAACAAAAAAP//f78AAACA9AQ1PwAAAAD0BDW/AAAAAP//f78AAACA9AQ1PwAAAAD0BDW/AAAAAP//fz8AAACA9AQ1PwAAAAD0BDW/AAAAAP//fz8AAACA9AQ1PwAAAAD0BDW/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/9AQ1vwAAAAD0BDW/AAAAAP//f78AAACA9AQ1vwAAAAD0BDW/AAAAAP//f78AAACA9AQ1vwAAAAD0BDW/AAAAAP//fz8AAACA9AQ1vwAAAAD0BDW/AAAAAP//fz8AAACAAACAvwAAAAAAAACAAAAAAAAAgL8AAACAAACAvwAAAAAAAACAAAAAAAAAgL8AAACAAACAvwAAAAAAAACAAAAAAAAAgD8AAACAAACAvwAAAAAAAACAAAAAAAAAgD8AAACA9AQ1vwAAAAD0BDU/AAAAAP//f78AAACA9AQ1vwAAAAD0BDU/AAAAAP//f78AAACA9AQ1vwAAAAD0BDU/AAAAAP//fz8AAACA9AQ1vwAAAAD0BDU/AAAAAP//fz8AAACAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/tusnP5BgYD8AAAA/AACAP5BgYD+26yc/9fw/PwAAgD+pSmA/pOInP/X8Pz8AAAAApOInP6lKYD8AAAA/AAAAAJBgYD+26yc/AABAPwAAgD+QYGA/lCiwPgAAgD8AAIA/qUpgP7g6sD4AAIA/AAAAAKlKYD+k4ic/AABAPwAAAACQYGA/lCiwPgAAAAAAAIA/tusnP4D7/D0AAIA+AACAP6TiJz+4qv09AACAPgAAAACpSmA/uDqwPgAAAAAAAAAAAACAPgAAgD8AAAA/AACAPwAAAD8AAAAAAACAPgAAAAAAAAA/AACAP5QosD6A+/w9AABAPwAAgD+E+/w9lCiwPgAAQD8AAAAAuKr9Pbg6sD4AAAA/AAAAALk6sD64qv09AABAPwAAgD+E+/w9lCiwPjTwfz8AAIA/hPv8PbbrJz808H8/AAAAALiq/T2k4ic/AABAPwAAAAC4qv09uDqwPgAAgLIAAIA/hPv8PbbrJz8AAIA+AACAP5QosD6QYGA/AACAPgAAAAC5OrA+qUpgPwAAgLIAAAAAuKr9PaTiJz8AAIA+AACAPwAAAD8AAIA/AAAAPwAAAAAAAIA+AAAAAAkACwANAAkADQAPABEAEwAVABEAFQAXABgAGQAaABgAGgAbABwAHgAgABwAIAAiACQAJgAoACQAKAAqACwALgAwACwAMAAyAAEAAwAFAAEABQAHADQANQA2ADQANgA3AAQAMwAxAAQAMQAGAAAALwAtAAAALQACAAgAJwAlAAgAJQAKABAAHwAdABAAHQASAAwAKwApAAwAKQAOABQAIwAhABQAIQAWAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAANRJREFUOMuFUyESAkEMy3MYMAwGicQgUDgUmn+cQ+P4AB9A8rFlsjPZCaGA6HW37WybNIfHad3ux1Wjf543H/Yrft0vGnjQIzQGb4fleDTzurOGhqpQXkWyfKRPwM9lN+/Gs+7TdtZNOZ09Tg9hZIfEmTGHwhzvbxCUkHc+Eqrq4fi8gwitiHRekFiTg8xnDXzP3uWfFrRK+Opy3Fyhe3GEit1q95kfEzjGSgeec03IxgTJhTo4bnHjtfim8Ry3WmfXgRfmf+A6qPgZHCQ258M5qfTxAhwqM9p+Fc+CAAAAAElFTkSuQmCCAAAA" - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/octagonal_column_cap.gltf b/src/main/resources/assets/architecture_extensions/models/block/octagonal_column_cap.gltf deleted file mode 100644 index fe5f774..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/octagonal_column_cap.gltf +++ /dev/null @@ -1,145 +0,0 @@ -{ - "asset" : { - "generator" : "Khronos glTF Blender I/O v1.7.33", - "version" : "2.0" - }, - "scene" : 0, - "scenes" : [ - { - "name" : "Scene", - "nodes" : [ - 1 - ] - } - ], - "nodes" : [ - { - "mesh" : 0, - "name" : "cylinder.001" - }, - { - "children" : [ - 0 - ], - "name" : "Node_3" - } - ], - "materials" : [ - { - "doubleSided" : true, - "name" : "Material", - "pbrMetallicRoughness" : { - "baseColorTexture" : { - "index" : 0 - }, - "metallicFactor" : 0, - "roughnessFactor" : 0.5 - } - } - ], - "meshes" : [ - { - "name" : "Mesh_1", - "primitives" : [ - { - "attributes" : { - "POSITION" : 0, - "NORMAL" : 1, - "TEXCOORD_0" : 2 - }, - "indices" : 3, - "material" : 0 - } - ] - } - ], - "textures" : [ - { - "sampler" : 0, - "source" : 0 - } - ], - "images" : [ - { - "bufferView" : 4, - "mimeType" : "image/png", - "name" : "all", - "uri": "#all" - } - ], - "accessors" : [ - { - "bufferView" : 0, - "componentType" : 5126, - "count" : 144, - "max" : [ - 0.5, - 0.5, - 0.5 - ], - "min" : [ - -0.5, - -0.5, - -0.5 - ], - "type" : "VEC3" - }, - { - "bufferView" : 1, - "componentType" : 5126, - "count" : 144, - "type" : "VEC3" - }, - { - "bufferView" : 2, - "componentType" : 5126, - "count" : 144, - "type" : "VEC2" - }, - { - "bufferView" : 3, - "componentType" : 5123, - "count" : 216, - "type" : "SCALAR" - } - ], - "bufferViews" : [ - { - "buffer" : 0, - "byteLength" : 1728, - "byteOffset" : 0 - }, - { - "buffer" : 0, - "byteLength" : 1728, - "byteOffset" : 1728 - }, - { - "buffer" : 0, - "byteLength" : 1152, - "byteOffset" : 3456 - }, - { - "buffer" : 0, - "byteLength" : 432, - "byteOffset" : 4608 - }, - { - "buffer" : 0, - "byteLength" : 269, - "byteOffset" : 5040 - } - ], - "samplers" : [ - { - "magFilter" : 9728, - "minFilter" : 9984 - } - ], - "buffers" : [ - { - "byteLength" : 5312, - "uri" : "data:application/octet-stream;base64,U5E5PgAAgD4AAOA+U5E5PgAAgD4AAOA+AADgPgAAgD5TkTk+AADgPgAAgD5TkTk+AADgPgAAwD5TkTk+U5E5PgAAwD4AAOA+AADgPgAAgD5TkTk+AADgPgAAgD5TkTk+AADgPgAAgD5TkTm+AADgPgAAgD5TkTm+AADgPgAAwD5TkTm+AADgPgAAwD5TkTk+AADgPgAAgD5TkTm+AADgPgAAgD5TkTm+U5E5PgAAgD4AAOC+U5E5PgAAgD4AAOC+U5E5PgAAwD4AAOC+AADgPgAAwD5TkTm+U5E5PgAAgD4AAOC+U5E5vgAAgD4AAOC+U5E5vgAAwD4AAOC+U5E5PgAAwD4AAOC+U5E5vgAAgD4AAOC+U5E5vgAAgD4AAOC+AADgvgAAgD5TkTm+AADgvgAAgD5TkTm+AADgvgAAwD5TkTm+U5E5vgAAwD4AAOC+AADgvgAAgD5TkTm+AADgvgAAgD5TkTm+AADgvgAAgD5TkTk+AADgvgAAgD5TkTk+AADgvgAAwD5TkTk+AADgvgAAwD5TkTm+AADgvgAAgD5TkTk+AADgvgAAgD5TkTk+U5E5vgAAgD4AAOA+U5E5vgAAgD4AAOA+U5E5vgAAwD4AAOA+AADgvgAAwD5TkTk+U5E5vgAAgD4AAOA+U5E5PgAAgD4AAOA+U5E5PgAAwD4AAOA+U5E5vgAAwD4AAOA+2g4fPgAAAL8AAMA+2g4fPgAAAL8AAMA+AADAPgAAAL/aDh8+AADAPgAAAL/aDh8+AADAPgAAgD7aDh8+2g4fPgAAgD4AAMA+AADAPgAAAL/aDh8+AADAPgAAAL/aDh8+AADAPgAAAL/aDh++AADAPgAAAL/aDh++AADAPgAAgD7aDh++AADAPgAAgD7aDh8+AADAPgAAAL/aDh++AADAPgAAAL/aDh++2g4fPgAAAL8AAMC+2g4fPgAAAL8AAMC+2g4fPgAAgD4AAMC+AADAPgAAgD7aDh++2g4fPgAAAL8AAMC+2g4fvgAAAL8AAMC+2g4fvgAAgD4AAMC+2g4fPgAAgD4AAMC+2g4fvgAAAL8AAMC+2g4fvgAAAL8AAMC+AADAvgAAAL/aDh++AADAvgAAAL/aDh++AADAvgAAgD7aDh++2g4fvgAAgD4AAMC+AADAvgAAAL/aDh++AADAvgAAAL/aDh++AADAvgAAAL/aDh8+AADAvgAAAL/aDh8+AADAvgAAgD7aDh8+AADAvgAAgD7aDh++AADAvgAAAL/aDh8+AADAvgAAAL/aDh8+2g4fvgAAAL8AAMA+2g4fvgAAAL8AAMA+2g4fvgAAgD4AAMA+AADAvgAAgD7aDh8+2g4fvgAAAL8AAMA+2g4fPgAAAL8AAMA+2g4fPgAAgD4AAMA+2g4fvgAAgD4AAMA+zRNUPgAAwD4AAAA/zRNUPgAAwD4AAAA/AAAAPwAAwD7NE1Q+AAAAPwAAwD7NE1Q+AAAAPwAAAD/NE1Q+AAAAPwAAAD/NE1Q+zRNUPgAAAD8AAAA/zRNUPgAAAD8AAAA/AAAAPwAAwD7NE1Q+AAAAPwAAwD7NE1Q+AAAAPwAAwD7NE1S+AAAAPwAAwD7NE1S+AAAAPwAAAD/NE1S+AAAAPwAAAD/NE1S+AAAAPwAAAD/NE1Q+AAAAPwAAAD/NE1Q+AAAAPwAAwD7NE1S+AAAAPwAAwD7NE1S+zRNUPgAAwD4AAAC/zRNUPgAAwD4AAAC/zRNUPgAAAD8AAAC/zRNUPgAAAD8AAAC/AAAAPwAAAD/NE1S+AAAAPwAAAD/NE1S+zRNUPgAAwD4AAAC/zRNUvgAAwD4AAAC/zRNUvgAAAD8AAAC/zRNUPgAAAD8AAAC/zRNUvgAAwD4AAAC/zRNUvgAAwD4AAAC/AAAAvwAAwD7NE1S+AAAAvwAAwD7NE1S+AAAAvwAAAD/NE1S+AAAAvwAAAD/NE1S+zRNUvgAAAD8AAAC/zRNUvgAAAD8AAAC/AAAAvwAAwD7NE1S+AAAAvwAAwD7NE1S+AAAAvwAAwD7NE1Q+AAAAvwAAwD7NE1Q+AAAAvwAAAD/NE1Q+AAAAvwAAAD/NE1Q+AAAAvwAAAD/NE1S+AAAAvwAAAD/NE1S+AAAAvwAAwD7NE1Q+AAAAvwAAwD7NE1Q+zRNUvgAAwD4AAAA/zRNUvgAAwD4AAAA/zRNUvgAAAD8AAAA/zRNUvgAAAD8AAAA/AAAAvwAAAD/NE1Q+AAAAvwAAAD/NE1Q+zRNUvgAAwD4AAAA/zRNUPgAAwD4AAAA/zRNUPgAAAD8AAAA/zRNUvgAAAD8AAAA/AAAAAAAAgL8AAACA8gQ1PwAAAADyBDU/AAAAAAAAgL8AAACA8gQ1PwAAAADyBDU/8gQ1PwAAAADyBDU/8gQ1PwAAAADyBDU/AAAAAAAAgL8AAACA//9/PwAAAAAAAACAAAAAAAAAgL8AAACA//9/PwAAAAAAAACA//9/PwAAAAAAAACA//9/PwAAAAAAAACAAAAAAAAAgL8AAACA8gQ1PwAAAADyBDW/AAAAAAAAgL8AAACA8gQ1PwAAAADyBDW/8gQ1PwAAAADyBDW/8gQ1PwAAAADyBDW/AAAAAAAAAAD//3+/AAAAAAAAAAD//3+/AAAAAAAAAAD//3+/AAAAAAAAAAD//3+/8gQ1vwAAAADyBDW/AAAAAAAAgL8AAACA8gQ1vwAAAADyBDW/AAAAAAAAgL8AAACA8gQ1vwAAAADyBDW/8gQ1vwAAAADyBDW///9/vwAAAAAAAACAAAAAAAAAgL8AAACA//9/vwAAAAAAAACAAAAAAAAAgL8AAACA//9/vwAAAAAAAACA//9/vwAAAAAAAACA8gQ1vwAAAADyBDU/AAAAAAAAgL8AAACA8gQ1vwAAAADyBDU/AAAAAAAAgL8AAACA8gQ1vwAAAADyBDU/8gQ1vwAAAADyBDU/AAAAAAAAAAD//38/AAAAAAAAAAD//38/AAAAAAAAAAD//38/AAAAAAAAAAD//38/AAAAAP//f78AAACA8wQ1PwAAAADzBDU/AAAAAP//f78AAACA8wQ1PwAAAADzBDU/8wQ1PwAAAADzBDU/8wQ1PwAAAADzBDU/AAAAAAAAgL8AAACAAACAPwAAAAAAAACAAAAAAAAAgL8AAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAAAAAP//f78AAACA8wQ1PwAAAADzBDW/AAAAAP//f78AAACA8wQ1PwAAAADzBDW/8wQ1PwAAAADzBDW/8wQ1PwAAAADzBDW/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/8wQ1vwAAAADzBDW/AAAAAP//f78AAACA8wQ1vwAAAADzBDW/AAAAAP//f78AAACA8wQ1vwAAAADzBDW/8wQ1vwAAAADzBDW/AACAvwAAAAAAAACAAAAAAAAAgL8AAACAAACAvwAAAAAAAACAAAAAAAAAgL8AAACAAACAvwAAAAAAAACAAACAvwAAAAAAAACA8wQ1vwAAAADzBDU/AAAAAP//f78AAACA8wQ1vwAAAADzBDU/AAAAAP//f78AAACA8wQ1vwAAAADzBDU/8wQ1vwAAAADzBDU/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAP//f78AAACA8wQ1PwAAAADzBDU/AAAAAP//f78AAACA8wQ1PwAAAADzBDU/AAAAAP//fz8AAACA8wQ1PwAAAADzBDU/AAAAAP//fz8AAACA8wQ1PwAAAADzBDU/AAAAAP//f78AAACAAACAPwAAAAAAAACAAAAAAP//f78AAACAAACAPwAAAAAAAACAAAAAAP//fz8AAACAAACAPwAAAAAAAACAAAAAAP//fz8AAACAAACAPwAAAAAAAACAAAAAAP//f78AAACA8wQ1PwAAAADzBDW/AAAAAP//f78AAACA8wQ1PwAAAADzBDW/AAAAAP//fz8AAACA8wQ1PwAAAADzBDW/AAAAAP//fz8AAACA8wQ1PwAAAADzBDW/AAAAAAAAAAD//3+/AAAAAAAAAAD//3+/AAAAAAAAAAD//3+/AAAAAAAAAAD//3+/8wQ1vwAAAADzBDW/AAAAAP//f78AAACA8wQ1vwAAAADzBDW/AAAAAP//f78AAACA8wQ1vwAAAADzBDW/AAAAAP//fz8AAACA8wQ1vwAAAADzBDW/AAAAAP//fz8AAACAAACAvwAAAAAAAACAAAAAAP//f78AAACAAACAvwAAAAAAAACAAAAAAP//f78AAACAAACAvwAAAAAAAACAAAAAAP//fz8AAACAAACAvwAAAAAAAACAAAAAAP//fz8AAACA8wQ1vwAAAADzBDU/AAAAAP//f78AAACA8wQ1vwAAAADzBDU/AAAAAP//f78AAACA8wQ1vwAAAADzBDU/AAAAAP//fz8AAACA8wQ1vwAAAADzBDU/AAAAAP//fz8AAACAAAAAAAAAAAD//38/AAAAAAAAAAD//38/AAAAAAAAAAD//38/AAAAAAAAAAD//38/SeZuPyJiLj8AAAA/AACAPmxLLT8fNm8/AABAPwAAgD4AAEA/AAAAPgAAAD8AAAA+LmKjPoDshT0AAEA/AACAPmzsLT9w7IU9AACAPwAAgD4AAIA/AAAAPgAAQD8AAAA+oImjPlhobz8AAAAAAACAPqxohD2dMC4/AACAPgAAgD4AAIA+AAAAPgAAAAAAAAA+AACAPgAAgD4AAAA/AACAPgAAAD8AAAA+AACAPgAAAD4AAAA/AACAPqxohD2Q6qM+AABAPwAAgD6giaM+gOyFPQAAQD8AAAA+AAAAPwAAAD4AAEA/AACAPm7sLT9YaG8/AACAPwAAgD4xYqM+WGhvPwAAgD8AAAA+AABAPwAAAD4AAAAAAACAPuqeLj/QYoQ9AACAPgAAgD7qcm8/cE6kPgAAgD4AAAA+AAAAAAAAAD4AAIA+AACAPgAAAD8AAIA+AAAAPwAAAD4AAIA+AAAAPoDLJz9w1fw9AAAAPwAAgD/gMGA/HACwPgAAQD8AAIA/AABAPwAAgD4AAAA/AACAPuAwYD+8G7A+AABAPwAAgD/gMGA/aM8nPwAAgD8AAIA/AACAPwAAgD4AAEA/AACAPmxbYD/jSig/AAAAAAAAgD9SoCc/BlpgPwAAgD4AAIA/AACAPgAAgD4AAAAAAACAPgAAgD4AAIA/AAAAPwAAgD8AAAA/AACAPgAAgD4AAIA+AAAAPwAAgD9Ovq8+buBfPwAAQD8AAIA/GID+PVMlJz8AAEA/AACAPgAAAD8AAIA+AABAPwAAgD+4JP09ac8nPwAAgD8AAIA/qCT9Pb4bsD4AAIA/AACAPgAAQD8AAIA+AAAAAAAAgD+oJP09HgCwPgAAgD4AAIA/7BOwPnDV/D0AAIA+AACAPgAAAAAAAIA+AACAPgAAgD8AAAA/AACAPwAAAD8AAIA+AACAPgAAgD4AAAAAYD+WPgAAAD8AAAA+YM6VPgAAYjoAAEA/AAAAPgAAgD/0BDU/AABAPwAAAADzBDU/AACAPwAAAD8AAAAA4DuWPgAEYjoAAEA/AAAAPsILNT8ABGI6AACAPwAAAD4AAIA/GvaVPgAAgD8AAAAAAACAP/QENT8AAEA/AAAAAM8YNT8AAGI6AAAAAAAAAD4AAIA/ZD+WPgAAgD4AAAA+8wQ1PwAAAAAAAIA+AAAAAAAAgD8a9pU+AAAAAAAAAAAAAIA+AAAAPgAAAD8AAAA+AAAAPwAAAAAAAIA+AAAAAAAAAD8AAAA+AACAP4QNNT8AAEA/AAAAPs8YNT+z9H8/AABAPwAAAAAAAAAAGvaVPgAAAD8AAAAAGvaVPgAAAAAAAEA/AAAAPsQLNT+y9H8/AACAPwAAAD7jO5Y+s/R/PwAAgD8AAAAAAAAAAPQENT8AAEA/AAAAAAAAAAAa9pU+AAAAAAAAAD5gzpU+s/R/PwAAgD4AAAA+AAAAAIENNT8AAIA+AAAAABr2lT4AAIA/AAAAAAAAAAAAAAAA9AQ1PwAAgD4AAAA+AAAAPwAAAD4AAAA/AAAAAAAAgD4AAAAABwAJAAoABwAKAAsADQAPABAADQAQABEAEgATABQAEgAUABUAFgAYABoAFgAaABsAHAAeACAAHAAgACEAIgAkACYAIgAmACcAAQADAAQAAQAEAAUAKAApACoAKAAqACsAAAAlACMAAAAjAAIADAAZABcADAAXAA4ABgAfAB0ABgAdAAgAMwA1ADYAMwA2ADcAOQA7ADwAOQA8AD0APgA/AEAAPgBAAEEAQgBEAEYAQgBGAEcASABKAEwASABMAE0ATgBQAFIATgBSAFMALQAvADAALQAwADEAVABVAFYAVABWAFcALABRAE8ALABPAC4AMgBLAEkAMgBJADQAOABFAEMAOABDADoAYQBjAGUAYQBlAGcAaQBrAG0AaQBtAG8AcABxAHIAcAByAHMAdAB2AHgAdAB4AHoAfAB+AIAAfACAAIIAhACGAIgAhACIAIoAWQBbAF0AWQBdAF8AjACNAI4AjACOAI8AaAB3AHUAaAB1AGoAYAB/AH0AYAB9AGIAWACHAIUAWACFAFoAXACLAIkAXACJAF4AZACDAIEAZACBAGYAbAB7AHkAbAB5AG4AiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA1ElEQVQ4y4VTIRICQQzLcxgwDAaJxCBQOBSaf5xD4/gAH0DysWWyM9kJoYDodbftbJs0h8dp3e7HVaN/njcf9it+3S8aeNAjNAZvh+V4NPO6s4aGqlBeRbJ8pE/Az2U378az7tN21k05nT1OD2Fkh8SZMYfCHO9vEJSQdz4Squrh+LyDCK2IdF6QWJODzGcNfM/e5Z8WtEr46nLcXKF7cYSK3Wr3mR8TOMZKB55zTcjGBMmFOjhuceO1+KbxHLdaZ9eBF+Z/4Dqo+BkcJDbnwzmp9PECHCoz2n4Vz4IAAAAASUVORK5CYIIAAAA=" - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/octagonal_column_double_cap.gltf b/src/main/resources/assets/architecture_extensions/models/block/octagonal_column_double_cap.gltf deleted file mode 100644 index cf93393..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/octagonal_column_double_cap.gltf +++ /dev/null @@ -1,121 +0,0 @@ -{ - "asset":{ - "generator":"Khronos glTF Blender I/O v3.5.30", - "version":"2.0" - }, - "scene":0, - "scenes":[ - { - "name":"Scene", - "nodes":[ - 1 - ] - } - ], - "nodes":[ - { - "mesh":0, - "name":"cylinder.001" - }, - { - "children":[ - 0 - ], - "name":"Node_3" - } - ], - "materials":[ - { - "doubleSided":true, - "name":"Material.001", - "pbrMetallicRoughness":{ - "metallicFactor":0, - "roughnessFactor":0.5 - } - } - ], - "meshes":[ - { - "name":"Mesh_1", - "primitives":[ - { - "attributes":{ - "POSITION":0, - "TEXCOORD_0":1, - "NORMAL":2 - }, - "indices":3, - "material":0 - } - ] - } - ], - "accessors":[ - { - "bufferView":0, - "componentType":5126, - "count":232, - "max":[ - 0.5, - 0.5, - 0.5 - ], - "min":[ - -0.5, - -0.5, - -0.5 - ], - "type":"VEC3" - }, - { - "bufferView":1, - "componentType":5126, - "count":232, - "type":"VEC2" - }, - { - "bufferView":2, - "componentType":5126, - "count":232, - "type":"VEC3" - }, - { - "bufferView":3, - "componentType":5123, - "count":348, - "type":"SCALAR" - } - ], - "bufferViews":[ - { - "buffer":0, - "byteLength":2784, - "byteOffset":0, - "target":34962 - }, - { - "buffer":0, - "byteLength":1856, - "byteOffset":2784, - "target":34962 - }, - { - "buffer":0, - "byteLength":2784, - "byteOffset":4640, - "target":34962 - }, - { - "buffer":0, - "byteLength":696, - "byteOffset":7424, - "target":34963 - } - ], - "buffers":[ - { - "byteLength":8120, - "uri":"data:application/octet-stream;base64,U5E5PgAAgD4AAOA+U5E5PgAAgD4AAOA+AADgPgAAgD5TkTk+AADgPgAAgD5TkTk+AADgPgAAwD5TkTk+U5E5PgAAwD4AAOA+AADgPgAAgD5TkTk+AADgPgAAgD5TkTk+AADgPgAAgD5TkTm+AADgPgAAgD5TkTm+AADgPgAAwD5TkTm+AADgPgAAwD5TkTk+AADgPgAAgD5TkTm+AADgPgAAgD5TkTm+U5E5PgAAgD4AAOC+U5E5PgAAgD4AAOC+U5E5PgAAwD4AAOC+AADgPgAAwD5TkTm+U5E5PgAAgD4AAOC+U5E5vgAAgD4AAOC+U5E5vgAAwD4AAOC+U5E5PgAAwD4AAOC+U5E5vgAAgD4AAOC+U5E5vgAAgD4AAOC+AADgvgAAgD5TkTm+AADgvgAAgD5TkTm+AADgvgAAwD5TkTm+U5E5vgAAwD4AAOC+AADgvgAAgD5TkTm+AADgvgAAgD5TkTm+AADgvgAAgD5TkTk+AADgvgAAgD5TkTk+AADgvgAAwD5TkTk+AADgvgAAwD5TkTm+AADgvgAAgD5TkTk+AADgvgAAgD5TkTk+U5E5vgAAgD4AAOA+U5E5vgAAgD4AAOA+U5E5vgAAwD4AAOA+AADgvgAAwD5TkTk+U5E5vgAAgD4AAOA+U5E5PgAAgD4AAOA+U5E5PgAAwD4AAOA+U5E5vgAAwD4AAOA+2g4fPgAAgL4AAMA+AADAPgAAgL7aDh8+AADAPgAAgD7aDh8+2g4fPgAAgD4AAMA+AADAPgAAgL7aDh8+AADAPgAAgL7aDh++AADAPgAAgD7aDh++AADAPgAAgD7aDh8+AADAPgAAgL7aDh++2g4fPgAAgL4AAMC+2g4fPgAAgD4AAMC+AADAPgAAgD7aDh++2g4fPgAAgL4AAMC+2g4fvgAAgL4AAMC+2g4fvgAAgD4AAMC+2g4fPgAAgD4AAMC+2g4fvgAAgL4AAMC+AADAvgAAgL7aDh++AADAvgAAgD7aDh++2g4fvgAAgD4AAMC+AADAvgAAgL7aDh++AADAvgAAgL7aDh8+AADAvgAAgD7aDh8+AADAvgAAgD7aDh++AADAvgAAgL7aDh8+2g4fvgAAgL4AAMA+2g4fvgAAgD4AAMA+AADAvgAAgD7aDh8+2g4fvgAAgL4AAMA+2g4fPgAAgL4AAMA+2g4fPgAAgD4AAMA+2g4fvgAAgD4AAMA+zRNUPgAAwD4AAAA/zRNUPgAAwD4AAAA/AAAAPwAAwD7NE1Q+AAAAPwAAwD7NE1Q+AAAAPwAAAD/NE1Q+AAAAPwAAAD/NE1Q+zRNUPgAAAD8AAAA/zRNUPgAAAD8AAAA/AAAAPwAAwD7NE1Q+AAAAPwAAwD7NE1Q+AAAAPwAAwD7NE1S+AAAAPwAAwD7NE1S+AAAAPwAAAD/NE1S+AAAAPwAAAD/NE1S+AAAAPwAAAD/NE1Q+AAAAPwAAAD/NE1Q+AAAAPwAAwD7NE1S+AAAAPwAAwD7NE1S+zRNUPgAAwD4AAAC/zRNUPgAAwD4AAAC/zRNUPgAAAD8AAAC/zRNUPgAAAD8AAAC/AAAAPwAAAD/NE1S+AAAAPwAAAD/NE1S+zRNUPgAAwD4AAAC/zRNUvgAAwD4AAAC/zRNUvgAAAD8AAAC/zRNUPgAAAD8AAAC/zRNUvgAAwD4AAAC/zRNUvgAAwD4AAAC/AAAAvwAAwD7NE1S+AAAAvwAAwD7NE1S+AAAAvwAAAD/NE1S+AAAAvwAAAD/NE1S+zRNUvgAAAD8AAAC/zRNUvgAAAD8AAAC/AAAAvwAAwD7NE1S+AAAAvwAAwD7NE1S+AAAAvwAAwD7NE1Q+AAAAvwAAwD7NE1Q+AAAAvwAAAD/NE1Q+AAAAvwAAAD/NE1Q+AAAAvwAAAD/NE1S+AAAAvwAAAD/NE1S+AAAAvwAAwD7NE1Q+AAAAvwAAwD7NE1Q+zRNUvgAAwD4AAAA/zRNUvgAAwD4AAAA/zRNUvgAAAD8AAAA/zRNUvgAAAD8AAAA/AAAAvwAAAD/NE1Q+AAAAvwAAAD/NE1Q+zRNUvgAAwD4AAAA/zRNUPgAAwD4AAAA/zRNUPgAAAD8AAAA/zRNUvgAAAD8AAAA/zRNUPgAAAL8AAAA/zRNUPgAAAL8AAAA/AAAAPwAAAL/NE1Q+AAAAPwAAAL/NE1Q+AAAAPwAAwL7NE1Q+AAAAPwAAwL7NE1Q+zRNUPgAAwL4AAAA/zRNUPgAAwL4AAAA/AAAAPwAAAL/NE1Q+AAAAPwAAAL/NE1Q+AAAAPwAAAL/NE1S+AAAAPwAAAL/NE1S+AAAAPwAAwL7NE1S+AAAAPwAAwL7NE1S+AAAAPwAAwL7NE1Q+AAAAPwAAwL7NE1Q+AAAAPwAAAL/NE1S+AAAAPwAAAL/NE1S+zRNUPgAAAL8AAAC/zRNUPgAAAL8AAAC/zRNUPgAAwL4AAAC/zRNUPgAAwL4AAAC/AAAAPwAAwL7NE1S+AAAAPwAAwL7NE1S+zRNUPgAAAL8AAAC/zRNUvgAAAL8AAAC/zRNUvgAAwL4AAAC/zRNUPgAAwL4AAAC/zRNUvgAAAL8AAAC/zRNUvgAAAL8AAAC/AAAAvwAAAL/NE1S+AAAAvwAAAL/NE1S+AAAAvwAAwL7NE1S+AAAAvwAAwL7NE1S+zRNUvgAAwL4AAAC/zRNUvgAAwL4AAAC/AAAAvwAAAL/NE1S+AAAAvwAAAL/NE1S+AAAAvwAAAL/NE1Q+AAAAvwAAAL/NE1Q+AAAAvwAAwL7NE1Q+AAAAvwAAwL7NE1Q+AAAAvwAAwL7NE1S+AAAAvwAAwL7NE1S+AAAAvwAAAL/NE1Q+AAAAvwAAAL/NE1Q+zRNUvgAAAL8AAAA/zRNUvgAAAL8AAAA/zRNUvgAAwL4AAAA/zRNUvgAAwL4AAAA/AAAAvwAAwL7NE1Q+AAAAvwAAwL7NE1Q+zRNUvgAAAL8AAAA/zRNUPgAAAL8AAAA/zRNUPgAAwL4AAAA/zRNUvgAAwL4AAAA/U5E5PgAAgL4AAOA+U5E5PgAAgL4AAOA+AADgPgAAgL5TkTk+AADgPgAAgL5TkTk+AADgPgAAwL5TkTk+U5E5PgAAwL4AAOA+AADgPgAAgL5TkTk+AADgPgAAgL5TkTk+AADgPgAAgL5TkTm+AADgPgAAgL5TkTm+AADgPgAAwL5TkTm+AADgPgAAwL5TkTk+AADgPgAAgL5TkTm+AADgPgAAgL5TkTm+U5E5PgAAgL4AAOC+U5E5PgAAgL4AAOC+U5E5PgAAwL4AAOC+AADgPgAAwL5TkTm+U5E5PgAAgL4AAOC+U5E5vgAAgL4AAOC+U5E5vgAAwL4AAOC+U5E5PgAAwL4AAOC+U5E5vgAAgL4AAOC+U5E5vgAAgL4AAOC+AADgvgAAgL5TkTm+AADgvgAAgL5TkTm+AADgvgAAwL5TkTm+U5E5vgAAwL4AAOC+AADgvgAAgL5TkTm+AADgvgAAgL5TkTm+AADgvgAAgL5TkTk+AADgvgAAgL5TkTk+AADgvgAAwL5TkTk+AADgvgAAwL5TkTm+AADgvgAAgL5TkTk+AADgvgAAgL5TkTk+U5E5vgAAgL4AAOA+U5E5vgAAgL4AAOA+U5E5vgAAwL4AAOA+AADgvgAAwL5TkTk+U5E5vgAAgL4AAOA+U5E5PgAAgL4AAOA+U5E5PgAAwL4AAOA+U5E5vgAAwL4AAOA+SeZuPyJiLj8AAAA/AACAPmxLLT8fNm8/AABAPwAAgD4AAEA/AAAAPgAAAD8AAAA+LmKjPoDshT0AAEA/AACAPmzsLT9w7IU9AACAPwAAgD4AAIA/AAAAPgAAQD8AAAA+oImjPlhobz8AAAAAAACAPqxohD2dMC4/AACAPgAAgD4AAIA+AAAAPgAAAAAAAAA+AACAPgAAgD4AAAA/AACAPgAAAD8AAAA+AACAPgAAAD4AAAA/AACAPqxohD2Q6qM+AABAPwAAgD6giaM+gOyFPQAAQD8AAAA+AAAAPwAAAD4AAEA/AACAPm7sLT9YaG8/AACAPwAAgD4xYqM+WGhvPwAAgD8AAAA+AABAPwAAAD4AAAAAAACAPuqeLj/QYoQ9AACAPgAAgD7qcm8/cE6kPgAAgD4AAAA+AAAAAAAAAD4AAIA+AACAPgAAAD8AAIA+AAAAPwAAAD4AAIA+AAAAPgAAAD8AAIA/AABAPwAAgD8AAEA/AACAPgAAAD8AAIA+AABAPwAAgD8AAIA/AACAPwAAgD8AAIA+AABAPwAAgD4AAAAAAACAPwAAgD4AAIA/AACAPgAAgD4AAAAAAACAPgAAgD4AAIA/AAAAPwAAgD8AAAA/AACAPgAAgD4AAIA+AAAAPwAAgD8AAEA/AACAPwAAQD8AAIA+AAAAPwAAgD4AAEA/AACAPwAAgD8AAIA/AACAPwAAgD4AAEA/AACAPgAAAAAAAIA/AACAPgAAgD8AAIA+AACAPgAAAAAAAIA+AACAPgAAgD8AAAA/AACAPwAAAD8AAIA+AACAPgAAgD4AAAAAYD+WPgAAAD8AAAA+YM6VPgAAYjoAAEA/AAAAPgAAgD/0BDU/AABAPwAAAADzBDU/AACAPwAAAD8AAAAA4DuWPgAEYjoAAEA/AAAAPsILNT8ABGI6AACAPwAAAD4AAIA/GvaVPgAAgD8AAAAAAACAP/QENT8AAEA/AAAAAM8YNT8AAGI6AAAAAAAAAD4AAIA/ZD+WPgAAgD4AAAA+8wQ1PwAAAAAAAIA+AAAAAAAAgD8a9pU+AAAAAAAAAAAAAIA+AAAAPgAAAD8AAAA+AAAAPwAAAAAAAIA+AAAAAAAAAD8AAAA+AACAP4QNNT8AAEA/AAAAPs8YNT+z9H8/AABAPwAAAAAAAAAAGvaVPgAAAD8AAAAAGvaVPgAAAAAAAEA/AAAAPsQLNT+y9H8/AACAPwAAAD7jO5Y+s/R/PwAAgD8AAAAAAAAAAPQENT8AAEA/AAAAAAAAAAAa9pU+AAAAAAAAAD5gzpU+s/R/PwAAgD4AAAA+AAAAAIENNT8AAIA+AAAAABr2lT4AAIA/AAAAAAAAAAAAAAAA9AQ1PwAAgD4AAAA+AAAAPwAAAD4AAAA/AAAAAAAAgD4AAAAALhKWPk0LgD8AAAA/AACAPwCaBzpqLzU/AABAPwAAgD8Y9pU+AACAPwAAQD8AAGA/AAAAAPMENT8AAAA/AABgPwCeBzqq+DQ/AABAPwAAgD8AoAc6sBWWPgAAgD8AAIA/8wQ1PwAAgD8AAIA/AABgPxj2lT4AAIA/AABAPwAAYD8AnAc6lvuVPgAAAIAAAIA/MBKWPgDQtDkAAIA+AACAPwAAgD/zBDU/AACAPgAAYD/zBDU/AACAPwAAAIAAAGA/AACAPgAAgD8AAAA/AACAPwAAAD8AAGA/AACAPgAAYD8AAAA/AACAP+r2ND8A0LQ5AABAPwAAgD8a3n8/lPuVPgAAQD8AAGA/8wQ1PwAAAAAAAAA/AABgPwAAgD8a9pU+AABAPwAAgD8Z3n8/qhWWPgAAgD8AAIA/Gt5/P6j4ND8AAIA/AABgPxr2lT4AAAAAAABAPwAAYD/zBDU/AAAAAAAAAAAAAIA/Gt5/P2kvNT8AAIA+AACAP+j2ND9NC4A/AACAPgAAYD8AAAAAGvaVPgAAAAAAAGA/GvaVPgAAAAAAAIA+AACAPwAAAD8AAIA/AAAAPwAAYD8AAIA+AABgPwAAAD8AAEA/SeZuPyJiLj8AAEA/AABAP2xLLT8fNm8/AABAPwAAYD8AAAA/AABgPwAAQD8AAEA/LmKjPoDshT0AAIA/AABAP2zsLT9w7IU9AACAPwAAYD8AAEA/AABgPwAAAAAAAEA/oImjPlhobz8AAIA+AABAP6xohD2dMC4/AACAPgAAYD8AAAAAAABgPwAAgD4AAEA/AAAAPwAAQD8AAAA/AABgPwAAgD4AAGA/rGiEPZDqoz4AAAA/AABAP6CJoz6A7IU9AABAPwAAQD8AAEA/AABgPwAAAD8AAGA/buwtP1hobz8AAEA/AABAPzFioz5YaG8/AACAPwAAQD8AAIA/AABgPwAAQD8AAGA/6p4uP9BihD0AAAAAAABAP+pybz9wTqQ+AACAPgAAQD8AAIA+AABgPwAAAAAAAGA/AACAPgAAQD8AAAA/AABAPwAAAD8AAGA/AACAPgAAYD8AAAAAAACAvwAAAICBBDU/AAAAAIEENT8AAAAAAACAvwAAAICBBDU/AAAAAIEENT+BBDU/AAAAAIEENT+BBDU/AAAAAIEENT8AAAAAAACAvwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIA/AAAAAAAAAIAAAIA/AAAAAAAAAIAAAIA/AAAAAAAAAIAAAAAAAACAvwAAAICBBDU/AAAAAIEENb8AAAAAAACAvwAAAICBBDU/AAAAAIEENb+BBDU/AAAAAIEENb+BBDU/AAAAAIEENb8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL+BBDW/AAAAAIEENb8AAAAAAACAvwAAAICBBDW/AAAAAIEENb8AAAAAAACAvwAAAICBBDW/AAAAAIEENb+BBDW/AAAAAIEENb8AAIC/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAICBBDW/AAAAAIEENT8AAAAAAACAvwAAAICBBDW/AAAAAIEENT8AAAAAAACAvwAAAICBBDW/AAAAAIEENT+BBDW/AAAAAIEENT8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD+BBDU/AAAAAIEENT+BBDU/AAAAAIEENT+BBDU/AAAAAIEENT+BBDU/AAAAAIEENT8AAIA/AAAAAAAAAIAAAIA/AAAAAAAAAIAAAIA/AAAAAAAAAIAAAIA/AAAAAAAAAICBBDU/AAAAAIEENb+BBDU/AAAAAIEENb+BBDU/AAAAAIEENb+BBDU/AAAAAIEENb8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL+BBDW/AAAAAIEENb+BBDW/AAAAAIEENb+BBDW/AAAAAIEENb+BBDW/AAAAAIEENb8AAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAICBBDW/AAAAAIEENT+BBDW/AAAAAIEENT+BBDW/AAAAAIEENT+BBDW/AAAAAIEENT8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAvwAAAICBBDU/AAAAAIEENT8AAAAAAACAvwAAAICBBDU/AAAAAIEENT8AAAAAAACAPwAAAICBBDU/AAAAAIEENT8AAAAAAACAPwAAAICBBDU/AAAAAIEENT8AAAAAAACAvwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAvwAAAICBBDU/AAAAAIEENb8AAAAAAACAvwAAAICBBDU/AAAAAIEENb8AAAAAAACAPwAAAICBBDU/AAAAAIEENb8AAAAAAACAPwAAAICBBDU/AAAAAIEENb8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL+BBDW/AAAAAIEENb8AAAAAAACAvwAAAICBBDW/AAAAAIEENb8AAAAAAACAvwAAAICBBDW/AAAAAIEENb8AAAAAAACAPwAAAICBBDW/AAAAAIEENb8AAAAAAACAPwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAPwAAAICBBDW/AAAAAIEENT8AAAAAAACAvwAAAICBBDW/AAAAAIEENT8AAAAAAACAvwAAAICBBDW/AAAAAIEENT8AAAAAAACAPwAAAICBBDW/AAAAAIEENT8AAAAAAACAPwAAAIAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAvwAAAICBBDU/AAAAAIEENT8AAAAAAACAvwAAAICBBDU/AAAAAIEENT8AAAAAAACAPwAAAICBBDU/AAAAAIEENT8AAAAAAACAPwAAAICBBDU/AAAAAIEENT8AAAAAAACAvwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAvwAAAICBBDU/AAAAAIEENb8AAAAAAACAvwAAAICBBDU/AAAAAIEENb8AAAAAAACAPwAAAICBBDU/AAAAAIEENb8AAAAAAACAPwAAAICBBDU/AAAAAIEENb8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL+BBDW/AAAAAIEENb8AAAAAAACAvwAAAICBBDW/AAAAAIEENb8AAAAAAACAvwAAAICBBDW/AAAAAIEENb8AAAAAAACAPwAAAICBBDW/AAAAAIEENb8AAAAAAACAPwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAvwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAPwAAAICBBDW/AAAAAIEENT8AAAAAAACAvwAAAICBBDW/AAAAAIEENT8AAAAAAACAvwAAAICBBDW/AAAAAIEENT8AAAAAAACAPwAAAICBBDW/AAAAAIEENT8AAAAAAACAPwAAAIAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD+BBDU/AAAAAIEENT8AAAAAAACAPwAAAICBBDU/AAAAAIEENT8AAAAAAACAPwAAAICBBDU/AAAAAIEENT+BBDU/AAAAAIEENT8AAIA/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIA/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIA/AAAAAAAAAIAAAIA/AAAAAAAAAICBBDU/AAAAAIEENb8AAAAAAACAPwAAAICBBDU/AAAAAIEENb8AAAAAAACAPwAAAICBBDU/AAAAAIEENb+BBDU/AAAAAIEENb8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAICBBDW/AAAAAIEENb8AAAAAAACAPwAAAICBBDW/AAAAAIEENb+BBDW/AAAAAIEENb+BBDW/AAAAAIEENb8AAAAAAACAPwAAAIAAAIC/AAAAAAAAAIAAAAAAAACAPwAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAIC/AAAAAAAAAIAAAAAAAACAPwAAAICBBDW/AAAAAIEENT8AAAAAAACAPwAAAICBBDW/AAAAAIEENT+BBDW/AAAAAIEENT+BBDW/AAAAAIEENT8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8HAAkACgAHAAoACwANAA8AEAANABAAEQASABMAFAASABQAFQAWABgAGgAWABoAGwAcAB4AIAAcACAAIQAiACQAJgAiACYAJwABAAMABAABAAQABQAoACkAKgAoACoAKwAAACUAIwAAACMAAgAMABkAFwAMABcADgAGAB8AHQAGAB0ACAAwADEAMgAwADIAMwA0ADUANgA0ADYANwA4ADkAOgA4ADoAOwA8AD0APgA8AD4APwBAAEEAQgBAAEIAQwBEAEUARgBEAEYARwAsAC0ALgAsAC4ALwBIAEkASgBIAEoASwBVAFcAWQBVAFkAWwBdAF8AYQBdAGEAYwBkAGUAZgBkAGYAZwBoAGoAbABoAGwAbgBwAHIAdABwAHQAdgB4AHoAfAB4AHwAfgBNAE8AUQBNAFEAUwCAAIEAggCAAIIAgwBcAGsAaQBcAGkAXgBUAHMAcQBUAHEAVgBMAHsAeQBMAHkATgBQAH8AfQBQAH0AUgBYAHcAdQBYAHUAWgBgAG8AbQBgAG0AYgCNAI8AkQCNAJEAkwCVAJcAmQCVAJkAmwCcAJ0AngCcAJ4AnwCgAKIApACgAKQApgCoAKoArACoAKwArgCwALIAtACwALQAtgCFAIcAiQCFAIkAiwC4ALkAugC4ALoAuwCUAKMAoQCUAKEAlgCMAKsAqQCMAKkAjgCEALMAsQCEALEAhgCIALcAtQCIALUAigCQAK8ArQCQAK0AkgCYAKcApQCYAKUAmgDCAMYAxADCAMcAxgDIAMwAygDIAM0AzADOANAAzwDOANEA0ADTANYA1QDTANcA1gDZANwA2wDZAN0A3ADfAOIA4QDfAOMA4gC8AMAAvgC8AMEAwADkAOYA5QDkAOcA5gC9AN4A4AC9AL8A3gDJANIA1ADJAMsA0gDDANgA2gDDAMUA2AA=" - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/peculiar/debuggy_block.json b/src/main/resources/assets/architecture_extensions/models/block/peculiar/debuggy_block.json deleted file mode 100644 index e5ebf6c..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/peculiar/debuggy_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "minecraft:block/debug" - } -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/peculiar/end_rod_nubless.json b/src/main/resources/assets/architecture_extensions/models/block/peculiar/end_rod_nubless.json deleted file mode 100644 index d5b6116..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/peculiar/end_rod_nubless.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "texture": "architecture_extensions:block/end_rod_nubless", - "particle": "#texture" - }, - "elements": [ - { - "from": [7, 0, 7], - "to": [9, 16, 9], - "faces": { - "north": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "east": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "south": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "west": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "up": {"uv": [7, 7, 9, 9], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [7, 7, 9, 9], "texture": "#texture", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/peculiar/fake_end_portal_block.json b/src/main/resources/assets/architecture_extensions/models/block/peculiar/fake_end_portal_block.json deleted file mode 100644 index 8da8838..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/peculiar/fake_end_portal_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "minecraft:entity/end_portal" - } -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/round_arch.gltf b/src/main/resources/assets/architecture_extensions/models/block/round_arch.gltf deleted file mode 100644 index d382a6d..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/round_arch.gltf +++ /dev/null @@ -1,143 +0,0 @@ -{ - "asset":{ - "generator":"Khronos glTF Blender I/O v3.5.30", - "version":"2.0" - }, - "scene":0, - "scenes":[ - { - "name":"Scene", - "nodes":[ - 0 - ] - } - ], - "nodes":[ - { - "mesh":0, - "name":"Cylinder.002" - } - ], - "materials":[ - { - "doubleSided":true, - "name":"Material", - "pbrMetallicRoughness":{ - "baseColorTexture":{ - "index":0 - }, - "metallicFactor":0, - "roughnessFactor":0.4000000059604645 - } - } - ], - "meshes":[ - { - "name":"Cylinder.004", - "primitives":[ - { - "attributes":{ - "POSITION":0, - "TEXCOORD_0":1, - "NORMAL":2 - }, - "indices":3, - "material":0 - } - ] - } - ], - "textures":[ - { - "sampler":0, - "source":0 - } - ], - "images":[ - { - "bufferView":4, - "mimeType":"image/png", - "name":"round_arch", - "uri": "#all" - } - ], - "accessors":[ - { - "bufferView":0, - "componentType":5126, - "count":48, - "max":[ - 0.5000001192092896, - 0.5000000596046448, - 0.5000000596046448 - ], - "min":[ - -0.5000000596046448, - -0.5, - -0.5000000596046448 - ], - "type":"VEC3" - }, - { - "bufferView":1, - "componentType":5126, - "count":48, - "type":"VEC2" - }, - { - "bufferView":2, - "componentType":5126, - "count":48, - "type":"VEC3" - }, - { - "bufferView":3, - "componentType":5123, - "count":84, - "type":"SCALAR" - } - ], - "bufferViews":[ - { - "buffer":0, - "byteLength":576, - "byteOffset":0, - "target":34962 - }, - { - "buffer":0, - "byteLength":384, - "byteOffset":576, - "target":34962 - }, - { - "buffer":0, - "byteLength":576, - "byteOffset":960, - "target":34962 - }, - { - "buffer":0, - "byteLength":168, - "byteOffset":1536, - "target":34963 - }, - { - "buffer":0, - "byteLength":242, - "byteOffset":1704 - } - ], - "samplers":[ - { - "magFilter":9728, - "minFilter":9984 - } - ], - "buffers":[ - { - "byteLength":1948, - "uri":"data:application/octet-stream;base64,/f//vgAAAL////8+/v//vtSN7r4m+HY+/v//vtSN7r4m+HY+/v//vtSN7r4m+HY+////vq5nu77izcwz////vq5nu77izcwz////vq5nu77izcwzAAAAv9ATVL7EE1S+AAAAv9ATVL7EE1S+AAAAv9ATVL7EE1S+AQAAvwAAgDOuZ7u+AQAAvwAAgDOuZ7u+AQAAvwAAgDOuZ7u+AQAAvyb4dj7Uje6+AQAAvyb4dj7Uje6+AQAAvyb4dj7Uje6+AAAAPwAAAL8BAAC/AAAAPwAAAL8BAAC/AAAAPwAAAL8BAAC/AQAAvwAAAL/+//++AQAAvwAAAL/+//++AQAAvwAAAL/+//++/v//PgAAAD8BAAC/AQAAv////z7+//++AgAAPwAAAL/+//8+AgAAPwAAAL/+//8+/f//vgAAAL8BAAA//f//vgAAAL8BAAA/AQAAvwAAAD/+//++AQAAvwAAAD/+//++AgAAPwAAAL/7//8+AQAAP9SN7r4e+HY+AQAAP9SN7r4e+HY+AQAAP9SN7r4e+HY+AQAAP65nu77GmxmzAQAAP65nu77GmxmzAQAAP65nu77GmxmzAQAAP9ATVL7ME1S+AQAAP9ATVL7ME1S+AQAAP9ATVL7ME1S+/v//PgAAADSyZ7u+/v//PgAAADSyZ7u+/v//PgAAADSyZ7u+/v//Pir4dj7Yje6+/v//Pir4dj7Yje6+/v//Pir4dj7Yje6+/v//PgEAAD8BAAC//v//PgEAAD8BAAC/ANrUOwAAgD8A2tQ7TJxVPwDa1DtMnFU/CL49P+pGdz8A2tQ7ljgrPwDa1DuWOCs/AAAAP9ezXT8A2tQ72tQAPwDa1Dva1AA/HPaVPvQENT8A2tQ7TOKsPgDa1DtM4qw+oDAJPvz//z4A2tQ7xDUwPgDa1DvENTA+UJELPeyDhD4AAAA0AJiaOQAAADRMVn4///9/PwAAgD8AAAAAAACAPwAAgD8AmJo5AACAP0xWfj8AAAA0AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA0AACAPwAAgD8AAIA/AACAPwAAgD8AAAAAAAAAAADa1DsA2tQ7AACAPwAAgD/ug4Q+6kZ3PwAAgD9MnFU/AACAP0ycVT/+//8+17NdPwAAgD+OOCs/AACAP444Kz/xBDU/9AQ1PwAAgD/a1AA/AACAP9rUAD/Xs10//P//PgAAgD9M4qw+AACAP0zirD7qRnc/7IOEPgAAgD/ENTA+AACAP8Q1MD7//38/AAAAAAAAgD8A2tQ7AAAAAGTMfT/LoQU+AAAAALaEbD9B8cM+AAAAAGTMfT/LoQU+AACAvwAAAAAAAAAAAAAAAEMcSz9R2hs/AAAAALaEbD9B8cM+AACAvwAAAAAAAACAAAAAAFHaGz9DHEs/AAAAAEMcSz9R2hs/AACAvwAAAIAAAAAAAAAAAEHxwz62hGw/AAAAAFHaGz9DHEs/AACAvwAAAAAAAACAAAAAAMuhBT5kzH0/AAAAAEHxwz62hGw/AACAvwAAAAAAAACAAAAAAAAAgL8AAACAAAAAgAAAAIAAAIC/AACAPwAAAAAAAACAAACAvwAAAIAAAAAAAAAAAAAAgL8AAACAAAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AACAPwAAAAAAAACAAAAAAAAAgL8AAACAAACAvwAAAAAAAAAAAAAAAAAAgL8AAACAAACAvwAAAAAAAACAAAAAAMuhBT5kzH0/AAAAAGTMfT/LoQU+AACAPwAAAIAAAACAAAAAALaEbD9B8cM+AAAAAGTMfT/LoQU+AACAPwAAAIAAAACAAAAAAEMcSz9R2hs/AAAAALaEbD9B8cM+AACAPwAAAAAAAACAAAAAAFHaGz9DHEs/AAAAAEMcSz9R2hs/AACAPwAAAAAAAACAAAAAAEHxwz62hGw/AAAAAFHaGz9DHEs/AACAPwAAAAAAAACAAAAAAMuhBT5kzH0/AAAAAEHxwz62hGw/AACAPwAAAAAAAACAAAAAAMuhBT5kzH0/BwAmACoABwAqAAsAIAAkAAUAIAAFAAEADQAsAC8ADQAvAB0AIwAnAAgAIwAIAAQAHgAhAAIAHgACAAAAEQAVABcAEQAXABYAGQAbABQAGQAUABAAHwASACIAIgASACUAHwAYABIAEgArACgAEgAuACsAJQASACgADwAcABMAAwATABoABgATAAMAEwAMAA8ADAATAAkACQATAAYACgApAC0ACgAtAA4AiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAuUlEQVQ4y51SQQqEMBCbb67X3oS9ireeF1+w4F8rETLEUO2yh1AnzsSxSWyfre3f/Wegn5heUwuQtdaT4OkA77gI6HCvWYXXZU3usgFf6FeV0xonkAIo5vecL3wb5dmbG3AtkjrggtqXG4D4F6dAKaUBKACvleshnvzG8CgngX+58x0CbrP3hQ74zVOANS9S+8K9V6sooBZ6uMITp828g14+yAUfGCRapAK9QLGOkc+jLMSdv5qDpywcWbpt2r8russAAAAASUVORK5CYIIAAA==" - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/models/block/round_fence_post.gltf b/src/main/resources/assets/architecture_extensions/models/block/round_fence_post.gltf deleted file mode 100644 index c13d844..0000000 --- a/src/main/resources/assets/architecture_extensions/models/block/round_fence_post.gltf +++ /dev/null @@ -1,148 +0,0 @@ -{ - "asset":{ - "generator":"Khronos glTF Blender I/O v3.5.30", - "version":"2.0" - }, - "scene":0, - "scenes":[ - { - "name":"Scene", - "nodes":[ - 1 - ] - } - ], - "nodes":[ - { - "mesh":0, - "name":"cylinder" - }, - { - "children":[ - 0 - ], - "name":"Node_1" - } - ], - "materials":[ - { - "doubleSided":true, - "name":"Material", - "pbrMetallicRoughness":{ - "baseColorTexture":{ - "index":0 - }, - "metallicFactor":0, - "roughnessFactor":0.5 - } - } - ], - "meshes":[ - { - "name":"Mesh_0", - "primitives":[ - { - "attributes":{ - "POSITION":0, - "TEXCOORD_0":1, - "NORMAL":2 - }, - "indices":3, - "material":0 - } - ] - } - ], - "textures":[ - { - "sampler":0, - "source":0 - } - ], - "images":[ - { - "bufferView":4, - "mimeType":"image/png", - "name":"stone_bricks" - } - ], - "accessors":[ - { - "bufferView":0, - "componentType":5126, - "count":56, - "max":[ - 0.1875, - 0.5, - 0.1875 - ], - "min":[ - -0.1875, - -0.5, - -0.1875 - ], - "type":"VEC3" - }, - { - "bufferView":1, - "componentType":5126, - "count":56, - "type":"VEC2" - }, - { - "bufferView":2, - "componentType":5126, - "count":56, - "type":"VEC3" - }, - { - "bufferView":3, - "componentType":5123, - "count":84, - "type":"SCALAR" - } - ], - "bufferViews":[ - { - "buffer":0, - "byteLength":672, - "byteOffset":0, - "target":34962 - }, - { - "buffer":0, - "byteLength":448, - "byteOffset":672, - "target":34962 - }, - { - "buffer":0, - "byteLength":672, - "byteOffset":1120, - "target":34962 - }, - { - "buffer":0, - "byteLength":168, - "byteOffset":1792, - "target":34963 - }, - { - "buffer":0, - "byteLength":242, - "byteOffset":1960 - } - ], - "samplers":[ - { - "magFilter":9728, - "minFilter":9984 - } - ], - "buffers":[ - { - "byteLength":2204, - "uri":"data:application/octet-stream;base64,2g6fPQAAAL8AAEA+2g6fPQAAAL8AAEA+AABAPgAAAL/aDp89AABAPgAAAL/aDp89AABAPgAAAD/aDp89AABAPgAAAD/aDp892g6fPQAAAD8AAEA+2g6fPQAAAD8AAEA+AABAPgAAAL/aDp89AABAPgAAAL/aDp+9AABAPgAAAD/aDp+9AABAPgAAAD/aDp89AABAPgAAAL/aDp+9AABAPgAAAL/aDp+92g6fPQAAAL8AAEC+2g6fPQAAAL8AAEC+2g6fPQAAAD8AAEC+2g6fPQAAAD8AAEC+AABAPgAAAD/aDp+9AABAPgAAAD/aDp+92g6fPQAAAL8AAEC+2g6fPQAAAL8AAEC+2g6fvQAAAL8AAEC+2g6fvQAAAL8AAEC+2g6fvQAAAD8AAEC+2g6fvQAAAD8AAEC+2g6fPQAAAD8AAEC+2g6fPQAAAD8AAEC+2g6fvQAAAL8AAEC+2g6fvQAAAL8AAEC+AABAvgAAAL/aDp+9AABAvgAAAL/aDp+9AABAvgAAAD/aDp+9AABAvgAAAD/aDp+92g6fvQAAAD8AAEC+2g6fvQAAAD8AAEC+AABAvgAAAL/aDp+9AABAvgAAAL/aDp89AABAvgAAAD/aDp89AABAvgAAAD/aDp+9AABAvgAAAL/aDp89AABAvgAAAL/aDp892g6fvQAAAL8AAEA+2g6fvQAAAL8AAEA+2g6fvQAAAD8AAEA+2g6fvQAAAD8AAEA+AABAvgAAAD/aDp89AABAvgAAAD/aDp892g6fvQAAAL8AAEA+2g6fvQAAAL8AAEA+2g6fPQAAAL8AAEA+2g6fPQAAAL8AAEA+2g6fPQAAAD8AAEA+2g6fPQAAAD8AAEA+2g6fvQAAAD8AAEA+2g6fvQAAAD8AAEA+AAAAPwAAgD9aOBU/svQ/PwAAID8AAIA/Qa86P8t9Gj8AACA/AAAAAGGYOj/LfRo/AAAAPwAAAAB7IRU/svQ/PwAAID8AAIA/AABAPwAAgD8AAEA/AAAAAAAAID8AAAAAQa86P2oEyz4AAEA/AACAP1o4FT+cFoA+AABgPwAAgD97IRU/nBaAPgAAYD8AAAAAYZg6P2wEyz4AAEA/AAAAAHFHwD6cFoA+AABgPwAAgD9OHxU/mhaAPgAAgD8AAIA/mxbAPpwWgD4AAIA/AAAAAOQGFT+aFoA+AABgPwAAAAAAAAAAAACAP6QiwD6cFoA+AAAAPgAAgD+saWo+bATLPgAAAD4AAAAABQlpPmwEyz4AAAAAAAAAAE5yvz6cFoA+AAAAPgAAgD8AAIA+AACAPwAAgD4AAAAAAAAAPgAAAACsaWo+y30aPwAAgD4AAIA/AADAPgAAgD+oIsA+svQ/P05yvz6y9D8/AADAPgAAAAD7CGk+y30aPwAAgD4AAAAAAADAPgAAgD9QHxU/svQ/P3NHwD6y9D8/AAAAPwAAgD8AAAA/AAAAAOUGFT+y9D8/AADAPgAAAACdFsA+svQ/P4EENT8AAAAAgQQ1PwAAAIAAAIC/AAAAgIEENT8AAAAAgQQ1PwAAAIAAAIC/AAAAgIEENT8AAAAAgQQ1PwAAAIAAAIA/AAAAgIEENT8AAAAAgQQ1PwAAAIAAAIA/AAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAgD8AAAAAAAAAgAAAAIAAAIC/AAAAgIEENT8AAAAAgQQ1vwAAAIAAAIC/AAAAgIEENT8AAAAAgQQ1vwAAAIAAAIA/AAAAgIEENT8AAAAAgQQ1vwAAAIAAAIA/AAAAgIEENT8AAAAAgQQ1vwAAAAAAAIC/AAAAgAAAAAAAAAAAAACAvwAAAAAAAIC/AAAAgAAAAAAAAAAAAACAvwAAAAAAAIA/AAAAgAAAAAAAAAAAAACAvwAAAAAAAIA/AAAAgAAAAAAAAAAAAACAv4EENb8AAAAAgQQ1vwAAAAAAAIC/AAAAgIEENb8AAAAAgQQ1vwAAAAAAAIC/AAAAgIEENb8AAAAAgQQ1vwAAAAAAAIA/AAAAgIEENb8AAAAAgQQ1vwAAAAAAAIA/AAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAgL8AAAAAAAAAgAAAAAAAAIC/AAAAgIEENb8AAAAAgQQ1P4EENb8AAAAAgQQ1PwAAAAAAAIC/AAAAgAAAAAAAAIA/AAAAgIEENb8AAAAAgQQ1PwAAAAAAAIA/AAAAgIEENb8AAAAAgQQ1PwAAAAAAAAAAAACAPwAAAAAAAIC/AAAAgAAAAAAAAIC/AAAAgAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAIA/AAAAgAAAAAAAAAAAAACAPwAAAAAAAIA/AAAAgAgACQAKAAgACgALAA0ADwARAA0AEQATABUAFwAZABUAGQAbABwAHgAgABwAIAAiAAEADgAMAAEADAADACQAJQAmACQAJgAnABQAMgAxABQAMQAWACkAKgAtACkALQAvACgAHwAdACgAHQArAAAAAgAEAAAABAAGADAAMwA0ADAANAA2ABAABwAFABAABQASACwAIwAhACwAIQAuADUAGgAYADUAGAA3AIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAALlJREFUOMudUkEKhDAQm2+u196EvYq3nhdfsOBfKxEyxFDtsodQJ87EsUlsn63t3/1noJ+YXlMLkLXWk+DpAO+4COhwr1mF12VN7rIBX+hXldMaJ5ACKOb3nC98G+XZmxtwLZI64ILalxuA+BenQCmlASgAr5XrIZ78xvAoJ4F/ufMdAm6z94UO+M1TgDUvUvvCvVerKKAWerjCE6fNvINePsgFHxgkWqQCvUCxjpHPoyzEnb+ag6csHFm6bdq/K7rLAAAAAElFTkSuQmCCAAA=" - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/models/item/debuggy_block.json b/src/main/resources/assets/architecture_extensions/models/item/debuggy_block.json deleted file mode 100644 index 1745463..0000000 --- a/src/main/resources/assets/architecture_extensions/models/item/debuggy_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "architecture_extensions:block/peculiar/debuggy_block" -} diff --git a/src/main/resources/assets/architecture_extensions/models/item/end_rod_nubless.json b/src/main/resources/assets/architecture_extensions/models/item/end_rod_nubless.json deleted file mode 100644 index 71c7ed1..0000000 --- a/src/main/resources/assets/architecture_extensions/models/item/end_rod_nubless.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "architecture_extensions:block/peculiar/end_rod_nubless" -} diff --git a/src/main/resources/assets/architecture_extensions/models/item/fake_end_portal_block.json b/src/main/resources/assets/architecture_extensions/models/item/fake_end_portal_block.json deleted file mode 100644 index 0203021..0000000 --- a/src/main/resources/assets/architecture_extensions/models/item/fake_end_portal_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "architecture_extensions:block/peculiar/fake_end_portal_block" -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_arch.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_arch.json deleted file mode 100644 index bf9f93b..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_arch.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "{model}_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "{model}_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "{model}" - }, - "facing=east,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "{model}", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "{model}_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "{model}_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "{model}", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "{model}", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 180, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_beam.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_beam.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_beam.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_crown_molding.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_crown_molding.json deleted file mode 100644 index bf9f93b..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_crown_molding.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "{model}_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "{model}_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "{model}" - }, - "facing=east,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "{model}", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "{model}_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "{model}_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "{model}", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "{model}", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 180, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_curve.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_curve.json deleted file mode 100644 index 446949d..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_curve.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom": { - "model": "{model}", - "y": 90 - }, - "facing=east,half=top": { - "model": "{model}", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom": { - "model": "{model}", - "y": 0, - "uvlock": true - }, - "facing=north,half=top": { - "model": "{model}", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom": { - "model": "{model}", - "y": 180, - "uvlock": true - }, - "facing=south,half=top": { - "model": "{model}", - "x": 180, - "y": 360, - "uvlock": true - }, - "facing=west,half=bottom": { - "model": "{model}", - "y": 270, - "uvlock": true - }, - "facing=west,half=top": { - "model": "{model}", - "x": 180, - "y": 90, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_facade.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_facade.json deleted file mode 100644 index d553e76..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_facade.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "{model}" - }, - "when": { - "north": "true" - } - }, - { - "apply": { - "model": "{model}", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "true" - } - }, - { - "apply": { - "model": "{model}", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "true" - } - }, - { - "apply": { - "model": "{model}", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "true" - } - }, - { - "apply": { - "model": "{model}", - "uvlock": true, - "x": 270 - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "{model}", - "uvlock": true, - "x": 90 - }, - "when": { - "down": "true" - } - }, - { - "apply": { - "model": "{model}", - "uvlock": true - }, - "when": { - "down": "false", - "east": "false", - "north": "false", - "south": "false", - "up": "false", - "west": "false" - } - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_fence_post.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_fence_post.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_fence_post.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_h_beam.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_h_beam.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_h_beam.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_i_beam.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_i_beam.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_i_beam.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_joist.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_joist.json deleted file mode 100644 index 077aecc..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_joist.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=north": { - "model": "{model}" - }, - "facing=east": { - "model": "{model}", - "y": 90 - }, - "facing=south": { - "model": "{model}", - "y": 180 - }, - "facing=west": { - "model": "{model}", - "y": 270 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_lattice.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_lattice.json deleted file mode 100644 index 9eaabcc..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_lattice.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "{model}", - "y": 270 - }, - "facing=north": { - "model": "{model}", - "y": 180 - }, - "facing=south": { - "model": "{model}" - }, - "facing=west": { - "model": "{model}", - "y": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_octagonal_column.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_octagonal_column.json deleted file mode 100644 index 6f4f7a1..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_octagonal_column.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "variants": { - "axis=x,max_cap=false,min_cap=false": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=x,max_cap=false,min_cap=true": { - "model": "{model}_cap", - "x": 90, - "y": 270 - }, - "axis=x,max_cap=true,min_cap=false": { - "model": "{model}_cap", - "x": 90, - "y": 90 - }, - "axis=x,max_cap=true,min_cap=true": { - "model": "{model}_double_cap", - "x": 90, - "y": 90 - }, - - "axis=y,max_cap=false,min_cap=false": { - "model": "{model}" - }, - "axis=y,max_cap=false,min_cap=true": { - "model": "{model}_cap", - "x": 180 - }, - "axis=y,max_cap=true,min_cap=false": { - "model": "{model}_cap" - }, - "axis=y,max_cap=true,min_cap=true": { - "model": "{model}_double_cap" - }, - - "axis=z,max_cap=false,min_cap=false": { - "model": "{model}", - "x": 90 - }, - "axis=z,max_cap=false,min_cap=true": { - "model": "{model}_cap", - "x": 90 - }, - "axis=z,max_cap=true,min_cap=false": { - "model": "{model}_cap", - "x": 90, - "y": 180 - }, - "axis=z,max_cap=true,min_cap=true": { - "model": "{model}_double_cap", - "x": 90 - } - } -} - diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_post_cap.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_post_cap.json deleted file mode 100644 index aa31442..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_post_cap.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "{model}" - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_post_lantern.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_post_lantern.json deleted file mode 100644 index f0aaa93..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_post_lantern.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "hanging=false,waterlogged=false": { - "model": "{model}" - }, - "hanging=false,waterlogged=true": { - "model": "{model}" - }, - "hanging=true,waterlogged=false": { - "model": "{model}_hanging" - }, - "hanging=true,waterlogged=true": { - "model": "{model}_hanging" - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_rod.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_rod.json deleted file mode 100644 index ea9d01a..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_rod.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "variants": { - "facing=down": { - "model": "{model}", - "x": 180 - }, - "facing=east": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "{model}", - "x": 90 - }, - "facing=south": { - "model": "{model}", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "{model}" - }, - "facing=west": { - "model": "{model}", - "x": 90, - "y": 270 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_roof.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_roof.json deleted file mode 100644 index ae2f729..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_roof.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "{model}_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "{model}_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "{model}" - }, - "facing=east,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "{model}", - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "{model}", - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "{model}_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "{model}_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "{model}", - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "{model}_inner", - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "{model}_inner", - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "{model}_outer", - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "{model}_outer", - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "{model}", - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "{model}_inner", - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "{model}_inner", - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "{model}_outer", - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "{model}_outer", - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "{model}", - "x": 180, - "y": 180 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_round_arch.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_round_arch.json deleted file mode 100644 index 446949d..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_round_arch.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom": { - "model": "{model}", - "y": 90 - }, - "facing=east,half=top": { - "model": "{model}", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom": { - "model": "{model}", - "y": 0, - "uvlock": true - }, - "facing=north,half=top": { - "model": "{model}", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom": { - "model": "{model}", - "y": 180, - "uvlock": true - }, - "facing=south,half=top": { - "model": "{model}", - "x": 180, - "y": 360, - "uvlock": true - }, - "facing=west,half=bottom": { - "model": "{model}", - "y": 270, - "uvlock": true - }, - "facing=west,half=top": { - "model": "{model}", - "x": 180, - "y": 90, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_round_fence_post.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_round_fence_post.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_round_fence_post.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_transom.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_transom.json deleted file mode 100644 index 0a64dd8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_transom.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "variants": { - "facing=north": { - "model": "{model}", - "uvlock": true - }, - "facing=east": { - "model": "{model}", - "y": 90, - "uvlock": true - }, - "facing=south": { - "model": "{model}", - "y": 180, - "uvlock": true - }, - "facing=west": { - "model": "{model}", - "y": 270, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_tube_metal.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_tube_metal.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_tube_metal.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_wall_column.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_wall_column.json deleted file mode 100644 index 1f4aff1..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_wall_column.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "variants": { - "facing=north,cap=false": { - "model": "{model}", - "uvlock": true - }, - "facing=north,cap=true": { - "model": "{model}_cap", - "uvlock": true - }, - "facing=east,cap=false": { - "model": "{model}", - "y": 90, - "uvlock": true - }, - "facing=east,cap=true": { - "model": "{model}_cap", - "y": 90, - "uvlock": true - }, - "facing=south,cap=false": { - "model": "{model}", - "y": 180, - "uvlock": true - }, - "facing=south,cap=true": { - "model": "{model}_cap", - "y": 180, - "uvlock": true - }, - "facing=west,cap=false": { - "model": "{model}", - "y": 270, - "uvlock": true - }, - "facing=west,cap=true": { - "model": "{model}_cap", - "y": 270, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_wall_post.json b/src/main/resources/assets/architecture_extensions/templates/blockstate/template_wall_post.json deleted file mode 100644 index 3545cb8..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/blockstate/template_wall_post.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "{model}", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "{model}" - }, - "axis=z": { - "model": "{model}", - "x": 90 - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch.json deleted file mode 100644 index 34fbe7c..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [4, 4, 0], - "to": [16, 6, 16], - "faces": { - "north": {"uv": [0, 10, 12, 12], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 10, 16, 12], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [4, 10, 16, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 10, 16, 12], "texture": "#texture"}, - "up": {"uv": [4, 0, 16, 16], "texture": "#texture"} - } - }, - { - "from": [8, 6, 0], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [0, 8, 8, 10], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 8, 16, 10], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [8, 8, 16, 10], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 8, 16, 10], "texture": "#texture"}, - "up": {"uv": [8, 0, 16, 16], "texture": "#texture"} - } - }, - { - "from": [10, 8, 0], - "to": [16, 12, 16], - "faces": { - "north": {"uv": [0, 4, 6, 8], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 4, 16, 8], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [10, 4, 16, 8], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 4, 16, 8], "texture": "#texture"}, - "up": {"uv": [10, 0, 16, 16], "texture": "#texture"} - } - }, - { - "from": [12, 12, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 4], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [12, 0, 16, 16], "texture": "#texture", "cullface": "up"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 135, 0], - "scale": [0.625, 0.625, 0.625] - }, - "head": { - "rotation": [0, 180, 0], - "translation": [0, 13, 7] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch_inner.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch_inner.json deleted file mode 100644 index d991a14..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch_inner.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [4, 4, 0], - "to": [16, 6, 16], - "faces": { - "north": {"uv": [0, 10, 12, 12], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 10, 16, 12], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [4, 10, 16, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 10, 16, 12], "texture": "#texture"}, - "up": {"uv": [4, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [8, 6, 0], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [0, 8, 8, 10], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 8, 16, 10], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [8, 8, 16, 10], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 8, 16, 10], "texture": "#texture"}, - "up": {"uv": [8, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [10, 8, 0], - "to": [16, 12, 16], - "faces": { - "north": {"uv": [0, 4, 6, 8], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 4, 16, 8], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [10, 4, 16, 8], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 4, 16, 8], "texture": "#texture"}, - "up": {"uv": [10, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [12, 12, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 4], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [12, 0, 16, 16], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [0, 4, 4], - "to": [4, 6, 16], - "faces": { - "north": {"uv": [12, 10, 16, 12], "texture": "#texture"}, - "east": {"uv": [0, 0, 0, 0], "texture": "#texture"}, - "south": {"uv": [0, 10, 4, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [4, 10, 16, 12], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 4, 4, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [0, 6, 8], - "to": [8, 8, 16], - "faces": { - "north": {"uv": [8, 8, 16, 10], "texture": "#texture"}, - "east": {"uv": [0, 0, 0, 0], "texture": "#texture"}, - "south": {"uv": [0, 8, 8, 10], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [8, 8, 16, 10], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 8, 8, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [0, 8, 10], - "to": [10, 12, 16], - "faces": { - "north": {"uv": [6, 4, 16, 8], "texture": "#texture"}, - "east": {"uv": [0, 0, 0, 0], "texture": "#texture"}, - "south": {"uv": [0, 4, 10, 8], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [10, 4, 16, 8], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 10, 10, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - }, - { - "from": [0, 12, 12], - "to": [12, 16, 16], - "faces": { - "north": {"uv": [4, 0, 16, 4], "texture": "#texture"}, - "east": {"uv": [0, 0, 0, 0], "texture": "#texture"}, - "south": {"uv": [0, 0, 12, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 12, 12, 16], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#texture"} - } - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch_outer.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch_outer.json deleted file mode 100644 index 515f8b5..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_arch_outer.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [4, 4, 4], - "to": [16, 6, 16], - "faces": { - "north": {"uv": [0, 10, 12, 12], "texture": "#texture"}, - "east": {"uv": [0, 10, 12, 12], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [4, 10, 16, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [4, 10, 16, 12], "texture": "#texture"}, - "up": {"uv": [4, 4, 16, 16], "texture": "#texture"} - } - }, - { - "from": [8, 6, 8], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [0, 8, 8, 10], "texture": "#texture"}, - "east": {"uv": [0, 8, 8, 10], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [8, 8, 16, 10], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [8, 8, 16, 10], "texture": "#texture"}, - "up": {"uv": [8, 8, 16, 16], "texture": "#texture"} - } - }, - { - "from": [10, 8, 10], - "to": [16, 12, 16], - "faces": { - "north": {"uv": [0, 4, 6, 8], "texture": "#texture"}, - "east": {"uv": [0, 4, 6, 8], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [10, 4, 16, 8], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [10, 4, 16, 8], "texture": "#texture"}, - "up": {"uv": [10, 10, 16, 16], "texture": "#texture"} - } - }, - { - "from": [12, 12, 12], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#texture"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [12, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [12, 12, 16, 16], "texture": "#texture", "cullface": "up"} - } - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_beam.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_beam.json deleted file mode 100644 index 15fb043..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_beam.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture_side" - }, - "elements": [ - { - "from": [2, 0, 2], - "to": [14, 16, 14], - "faces": { - "north": {"uv": [2, 0, 14, 16], "texture": "#texture_side"}, - "east": {"uv": [2, 0, 14, 16], "texture": "#texture_side"}, - "south": {"uv": [2, 0, 14, 16], "texture": "#texture_side"}, - "west": {"uv": [2, 0, 14, 16], "texture": "#texture_side"}, - "up": {"uv": [2, 2, 14, 14], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [2, 2, 14, 14], "texture": "#texture_up", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_circle_corner.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_circle_corner.json deleted file mode 100644 index 7ad3f3b..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_circle_corner.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "minecraft:block/stone_bricks" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 16, 4], - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [12, 0, 16, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#texture_side"}, - "west": {"uv": [0, 0, 4, 16], "texture": "#texture_side", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 4], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [0, 12, 16, 16], "texture": "#texture_down", "cullface": "down"} - } - }, - { - "from": [2, 0, 4], - "to": [16, 16, 8], - "faces": { - "east": {"uv": [8, 0, 12, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [2, 0, 16, 16], "texture": "#texture_side"}, - "west": {"uv": [4, 0, 8, 16], "texture": "#texture_side"}, - "up": {"uv": [2, 4, 16, 8], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [2, 8, 16, 12], "texture": "#texture_down", "cullface": "down"} - } - }, - { - "from": [4, 0, 8], - "to": [16, 16, 12], - "faces": { - "east": {"uv": [4, 0, 8, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [4, 0, 16, 16], "texture": "#texture_side"}, - "west": {"uv": [8, 0, 12, 16], "texture": "#texture_side"}, - "up": {"uv": [4, 8, 16, 12], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [4, 4, 16, 8], "texture": "#texture_down", "cullface": "down"} - } - }, - { - "from": [8, 0, 12], - "to": [16, 16, 14], - "faces": { - "east": {"uv": [2, 0, 4, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [8, 0, 16, 16], "texture": "#texture_side"}, - "west": {"uv": [12, 0, 14, 16], "texture": "#texture_side"}, - "up": {"uv": [8, 12, 16, 14], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [8, 2, 16, 4], "texture": "#texture_down", "cullface": "down"} - } - }, - { - "from": [12, 0, 14], - "to": [16, 16, 16], - "faces": { - "east": {"uv": [0, 0, 2, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [12, 0, 16, 16], "texture": "#texture_side", "cullface": "south"}, - "west": {"uv": [14, 0, 16, 16], "texture": "#texture_side"}, - "up": {"uv": [12, 14, 16, 16], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [12, 0, 16, 2], "texture": "#texture_down", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, -90], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [-90, 0, 0], - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding.json deleted file mode 100644 index 29daea4..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [8, 0, 0], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 12, 8, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [8, 12, 16, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 12, 16, 16], "texture": "#texture"}, - "up": {"uv": [8, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 8, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [12, 4, 0], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [0, 8, 4, 12], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 8, 16, 12], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [12, 8, 16, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 8, 16, 12], "texture": "#texture"}, - "up": {"uv": [12, 0, 16, 16], "texture": "#texture"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 135, 0], - "translation": [2, 0.75, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding_inner.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding_inner.json deleted file mode 100644 index a8b2817..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding_inner.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [8, 0, 0], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 0, 8, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 12, 16, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [8, 12, 16, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 12, 16, 16], "texture": "#texture"}, - "up": {"uv": [8, 0, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 8, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [0, 0, 8], - "to": [8, 4, 16], - "faces": { - "north": {"uv": [8, 12, 16, 16], "texture": "#texture"}, - "south": {"uv": [0, 12, 8, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [8, 12, 16, 16], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [8, 8, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 0, 8, 8], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [12, 4, 0], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 8, 16, 12], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [12, 8, 16, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 8, 16, 12], "texture": "#texture"}, - "up": {"uv": [12, 0, 16, 16], "texture": "#texture"} - } - }, - { - "from": [0, 4, 12], - "to": [12, 8, 16], - "faces": { - "north": {"uv": [4, 8, 16, 12], "texture": "#texture"}, - "south": {"uv": [0, 8, 12, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [12, 8, 16, 12], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 12, 12, 16], "texture": "#texture"} - } - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding_outer.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding_outer.json deleted file mode 100644 index 44ba9b5..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_crown_molding_outer.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [8, 0, 8], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 12, 8, 16], "texture": "#texture"}, - "east": {"uv": [0, 12, 8, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [8, 12, 16, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [8, 12, 16, 16], "texture": "#texture"}, - "up": {"uv": [8, 8, 16, 16], "texture": "#texture"}, - "down": {"uv": [8, 0, 16, 8], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [12, 4, 12], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [0, 8, 4, 12], "texture": "#texture"}, - "east": {"uv": [0, 8, 4, 12], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [12, 8, 16, 12], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [12, 8, 16, 12], "texture": "#texture"}, - "up": {"uv": [12, 12, 16, 16], "texture": "#texture"} - } - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_curve.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_curve.json deleted file mode 100644 index 286a19a..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_curve.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "parent": "architecture_extensions:block/curve.gltf", - "loader": "suspicious_shapes:gltf", - "textures": { - "particle": "#texture", - "all": "#texture" - }, - "uvlock": true, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 315, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 315, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "scale": [0.625, 0.625, 0.625] - }, - "head": { - "rotation": [0, 180, 0], - "translation": [0, 13, 7] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_facade.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_facade.json deleted file mode 100644 index a33fdb6..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_facade.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 16, 0.01], - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#texture"}, - "east": {"uv": [15.99, 0, 16, 16], "texture": "#texture"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#texture"}, - "west": {"uv": [0, 0, 0.01, 16], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 0.01], "texture": "#texture"}, - "down": {"uv": [0, 15.99, 16, 16], "texture": "#texture"} - } - } - ], - "gui_light": "front", - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 2], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [-3.5, 1.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "head": { - "rotation": [0, 180, 0], - "translation": [0, 13, 7] - }, - "fixed": { - "translation": [0, 0, 4.75], - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_fence_post.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_fence_post.json deleted file mode 100644 index 5b26aa3..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_fence_post.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "parent": "minecraft:block/fence_post", - "textures": { - "particle": "#texture" - }, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_h_beam.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_h_beam.json deleted file mode 100644 index 722ffc7..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_h_beam.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [1, 0, 0], - "to": [15, 16, 4], - "faces": { - "north": {"uv": [1, 0, 15, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 4, 16], "texture": "#texture"}, - "south": {"uv": [1, 0, 15, 16], "texture": "#texture"}, - "west": {"uv": [0, 0, 4, 16], "texture": "#texture"}, - "up": {"uv": [4, 0, 8, 14], "rotation": 90, "texture": "#texture", "cullface": "up"}, - "down": {"uv": [4, 0, 8, 14], "rotation": 90, "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [1, 0, 12], - "to": [15, 16, 16], - "faces": { - "north": {"uv": [1, 0, 15, 16], "texture": "#texture"}, - "east": {"uv": [0, 0, 4, 16], "texture": "#texture"}, - "south": {"uv": [1, 0, 15, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 4, 16], "texture": "#texture"}, - "up": {"uv": [4, 0, 8, 14], "rotation": 90, "texture": "#texture", "cullface": "up"}, - "down": {"uv": [4, 0, 8, 14], "rotation": 90, "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [6, 0, 4], - "to": [10, 16, 12], - "faces": { - "east": {"uv": [8, 0, 16, 16], "texture": "#texture"}, - "west": {"uv": [8, 0, 16, 16], "texture": "#texture"}, - "up": {"uv": [0, 4, 4, 12], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [0, 4, 4, 12], "texture": "#texture", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_i_beam.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_i_beam.json deleted file mode 100644 index 9700bac..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_i_beam.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [4, 0, 0], - "to": [12, 16, 2], - "faces": { - "north": {"uv": [4, 0, 12, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 2, 16], "texture": "#texture"}, - "south": {"uv": [4, 0, 12, 16], "texture": "#texture"}, - "west": {"uv": [0, 0, 2, 16], "texture": "#texture"}, - "up": {"uv": [4, 0, 12, 2], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [4, 0, 12, 2], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [4, 0, 14], - "to": [12, 16, 16], - "faces": { - "north": {"uv": [4, 0, 12, 16], "texture": "#texture"}, - "east": {"uv": [14, 0, 16, 16], "texture": "#texture"}, - "south": {"uv": [4, 0, 12, 16], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [14, 0, 16, 16], "texture": "#texture"}, - "up": {"uv": [4, 14, 12, 16], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [4, 14, 12, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [7, 0, 2], - "to": [9, 16, 14], - "faces": { - "east": {"uv": [2, 0, 14, 16], "texture": "#texture"}, - "west": {"uv": [2, 0, 14, 16], "texture": "#texture"}, - "up": {"uv": [0, 2, 2, 14], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [0, 2, 2, 14], "texture": "#texture", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_joist.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_joist.json deleted file mode 100644 index 3f97a77..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_joist.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [4, 4, 0], - "to": [12, 16, 16], - "faces": { - "north": {"uv": [4, 2, 12, 14], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 12, 16], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [4, 2, 12, 14], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 12, 16], "rotation": 90, "texture": "#texture"}, - "up": {"uv": [4, 0, 12, 16], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [4, 0, 12, 16], "texture": "#texture"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_lattice.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_lattice.json deleted file mode 100644 index 4d9c8d9..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_lattice.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "credit": "Made by Cart3r with Blockbench.", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0.025, 0, 6.975], - "to": [16.025, 1, 8.975], - "rotation": {"angle": 0, "axis": "y", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 15, 16, 16], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [14, 15, 16, 16], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 15, 16, 16], "texture": "#texture"}, - "west": {"uv": [0, 15, 2, 16], "texture": "#texture"}, - "up": {"uv": [0, 14, 16, 16], "texture": "#texture"}, - "down": {"uv": [0, 14, 16, 16], "texture": "#texture", "cullface": "down"} - } - }, - { - "from": [0.025, 15, 6.975], - "to": [16.025, 16, 8.975], - "rotation": {"angle": 0, "axis": "y", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 0, 16, 1], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 1], "texture": "#texture"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#texture"}, - "up": {"uv": [0, 14, 16, 16], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [0, 14, 16, 16], "texture": "#texture"} - } - }, - { - "from": [15.025, 1, 6.975], - "to": [16.025, 15, 8.975], - "rotation": {"angle": 0, "axis": "y", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 1, 1, 15], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [14, 1, 16, 15], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [15, 1, 16, 15], "texture": "#texture"}, - "west": {"uv": [0, 0, 2, 14], "texture": "#texture"} - } - }, - { - "from": [0.025, 1, 6.975], - "to": [1.025, 15, 8.975], - "rotation": {"angle": 0, "axis": "y", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [15, 1, 16, 15], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 2, 14], "texture": "#texture"}, - "south": {"uv": [0, 1, 1, 15], "texture": "#texture"}, - "west": {"uv": [0, 1, 2, 15], "texture": "#texture"} - } - }, - { - "from": [10.70698, 0.88909, 7.475], - "to": [11.70698, 15.63909, 8.475], - "rotation": {"angle": 45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [14.94962, 4.71751, 7.475], - "to": [15.94962, 11.21751, 8.475], - "rotation": {"angle": 45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [9.5, 7, 16, 8], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [9.5, 7, 16, 8], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [9.5, 7, 16, 8], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [9.5, 7, 16, 8], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [0.10038, 4.93198, 7.475], - "to": [1.10038, 11.18198, 8.475], - "rotation": {"angle": 45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 11, 6.25, 12], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 11, 6.25, 12], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 11, 6.25, 12], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 11, 6.25, 12], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [7.17145, -2.48223, 7.475], - "to": [8.17145, 18.26777, 8.475], - "rotation": {"angle": 45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 7, 16, 8], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 7, 16, 8], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 7, 16, 8], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 7, 16, 8], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [3.63591, 1.39645, 7.475], - "to": [4.63591, 14.64645, 8.475], - "rotation": {"angle": 45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 15, 13.25, 16], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 15, 13.25, 16], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 15, 13.25, 16], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 15, 13.25, 16], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [14.94962, 4.93198, 7.525], - "to": [15.94962, 11.18198, 8.525], - "rotation": {"angle": -45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 3, 6.25, 4], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 3, 6.25, 4], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 3, 6.25, 4], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 3, 6.25, 4], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [11.41409, 1.39645, 7.525], - "to": [12.41409, 14.64645, 8.525], - "rotation": {"angle": -45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 3, 13.25, 4], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 3, 13.25, 4], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 3, 13.25, 4], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 3, 13.25, 4], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [7.87855, -2.48223, 7.525], - "to": [8.87855, 18.26777, 8.525], - "rotation": {"angle": -45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 3, 16, 4], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 3, 16, 4], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 3, 16, 4], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 3, 16, 4], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [4.34302, 0.88909, 7.525], - "to": [5.34302, 15.63909, 8.525], - "rotation": {"angle": -45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 3, 14.75, 4], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [0.60038, 4.71751, 7.525], - "to": [1.60038, 11.21751, 8.525], - "rotation": {"angle": -45, "axis": "z", "origin": [8.025, 8, 8]}, - "faces": { - "north": {"uv": [0, 3, 6.5, 4], "rotation": 90, "texture": "#texture"}, - "east": {"uv": [0, 3, 6.5, 4], "rotation": 90, "texture": "#texture"}, - "south": {"uv": [0, 3, 6.5, 4], "rotation": 90, "texture": "#texture"}, - "west": {"uv": [0, 3, 6.5, 4], "rotation": 90, "texture": "#texture"} - } - } - ], - "gui_light": "front", - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column.json deleted file mode 100644 index 7763313..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "parent": "architecture_extensions:block/octagonal_column.gltf", - "loader": "suspicious_shapes:gltf", - "textures": { - "particle": "#texture", - "all": "#texture" - }, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column_cap.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column_cap.json deleted file mode 100644 index 1592c81..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column_cap.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "parent": "architecture_extensions:block/octagonal_column_cap.gltf", - "loader": "suspicious_shapes:gltf", - "textures": { - "particle": "#texture", - "all": "#texture" - }, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column_double_cap.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column_double_cap.json deleted file mode 100644 index b53389c..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_octagonal_column_double_cap.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "parent": "architecture_extensions:block/octagonal_column_double_cap.gltf", - "loader": "suspicious_shapes:gltf", - "textures": { - "particle": "#texture", - "all": "#texture" - }, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_cap.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_cap.json deleted file mode 100644 index c0a0d8c..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_cap.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [5, 0, 5], - "to": [11, 3, 11], - "faces": { - "north": {"uv": [5, 13, 11, 16], "texture": "#texture"}, - "east": {"uv": [5, 13, 11, 16], "texture": "#texture"}, - "south": {"uv": [5, 13, 11, 16], "texture": "#texture"}, - "west": {"uv": [5, 13, 11, 16], "texture": "#texture"}, - "up": {"uv": [5, 5, 11, 11], "texture": "#texture"}, - "down": {"uv": [5, 5, 11, 11], "texture": "#texture", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 1.25], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [1.5, 4.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [1.5, 4.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.38672, 0.38672, 0.38672] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [0, 2.25, 0], - "scale": [0.79102, 0.79102, 0.79102] - }, - "head": { - "translation": [0, 14.25, 0], - "scale": [2.60547, 2.60547, 2.60547] - }, - "fixed": { - "translation": [0, 2.5, 0], - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_lantern.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_lantern.json deleted file mode 100644 index 39127db..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_lantern.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "credit": "Made with Blockbench by Cart3r, edited by Falkreon.", - "textures": { - "lantern_texture": "block/lantern", - "particle": "#texture" - }, - "elements": [ - { - "from": [5, 0, 5], - "to": [11, 1, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "east": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "south": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "west": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "down": {"uv": [0, 10, 6, 16], "texture": "#texture"} - } - }, - { - "from": [4, 5, 4], - "to": [12, 6, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "east": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "south": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "west": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "up": {"uv": [4, 4, 12, 12], "rotation": 90, "texture": "#texture"}, - "down": {"uv": [4, 4, 12, 12], "rotation": 270, "texture": "#texture"} - } - }, - { - "from": [6, 6, 6], - "to": [10, 7, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "east": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "south": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "west": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "up": {"uv": [6, 6, 10, 10], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [5, 1, 6], - "to": [11, 5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "east": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"}, - "west": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"} - } - }, - { - "from": [6, 1, 5], - "to": [10, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"}, - "south": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"} - } - }, - { - "from": [5, 1, 5], - "to": [6, 5, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "west": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - }, - { - "from": [5, 1, 10], - "to": [6, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "south": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "west": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - }, - { - "from": [10, 1, 10], - "to": [11, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "east": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "south": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - }, - { - "from": [10, 1, 5], - "to": [11, 5, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "east": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 1.25], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [1.5, 4.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [1.5, 4.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.38672, 0.38672, 0.38672] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [0, 2.25, 0], - "scale": [0.79102, 0.79102, 0.79102] - }, - "head": { - "translation": [0, 14.25, 0], - "scale": [2.60547, 2.60547, 2.60547] - }, - "fixed": { - "translation": [0, 2.5, 0], - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_lantern_hanging.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_lantern_hanging.json deleted file mode 100644 index 6599788..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_post_lantern_hanging.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "credit": "Made with Blockbench by Cart3r, edited by Falkreon.", - "textures": { - "lantern_texture": "block/lantern", - "particle": "#texture" - }, - "elements": [ - { - "from": [5, 9, 5], - "to": [11, 10, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "east": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "south": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "west": {"uv": [5, 14, 11, 15], "texture": "#texture"}, - "down": {"uv": [0, 10, 6, 16], "texture": "#texture"} - } - }, - { - "from": [4, 14, 4], - "to": [12, 15, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "east": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "south": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "west": {"uv": [4, 10, 12, 11], "texture": "#texture"}, - "up": {"uv": [4, 4, 12, 12], "rotation": 90, "texture": "#texture"}, - "down": {"uv": [4, 4, 12, 12], "rotation": 270, "texture": "#texture"} - } - }, - { - "from": [6, 15, 6], - "to": [10, 16, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "east": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "south": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "west": {"uv": [6, 9, 10, 10], "texture": "#texture"}, - "up": {"uv": [6, 6, 10, 10], "rotation": 90, "texture": "#texture"} - } - }, - { - "from": [5, 10, 6], - "to": [11, 14, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "east": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"}, - "west": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"} - } - }, - { - "from": [6, 10, 5], - "to": [10, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"}, - "south": {"uv": [1, 4, 5, 8], "texture": "#lantern_texture"} - } - }, - { - "from": [5, 10, 5], - "to": [6, 14, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "west": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - }, - { - "from": [5, 10, 10], - "to": [6, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "south": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "west": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - }, - { - "from": [10, 10, 10], - "to": [11, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "east": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "south": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - }, - { - "from": [10, 10, 5], - "to": [11, 14, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 8]}, - "faces": { - "north": {"uv": [1, 1, 2, 5], "texture": "#texture"}, - "east": {"uv": [1, 1, 2, 5], "texture": "#texture"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 1.25], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [1.5, 4.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [1.5, 4.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.38672, 0.38672, 0.38672] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [0, 2.25, 0], - "scale": [0.79102, 0.79102, 0.79102] - }, - "head": { - "translation": [0, 14.25, 0], - "scale": [2.60547, 2.60547, 2.60547] - }, - "fixed": { - "translation": [0, 2.5, 0], - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_rod.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_rod.json deleted file mode 100644 index 15795f3..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_rod.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [7, 0, 7], - "to": [9, 16, 9], - "faces": { - "north": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "east": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "south": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "west": {"uv": [7, 0, 9, 16], "texture": "#texture"}, - "up": {"uv": [7, 7, 9, 9], "texture": "#texture", "cullface": "up"}, - "down": {"uv": [7, 7, 9, 9], "texture": "#texture", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof.json deleted file mode 100644 index e9acc22..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "credit": "Made with Blockbench. Fixed by Carter.", - "parent": "minecraft:block/cube", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [8, 6, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [8, 10, 16, 16], "texture": "#texture_side", "cullface": "north"}, - "south": {"uv": [0, 10, 8, 16], "texture": "#texture_side", "cullface": "south"}, - "west": {"uv": [0, 10, 16, 16], "texture": "#texture_side", "cullface": "west"}, - "down": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#texture_side", "cullface": "down"} - } - }, - { - "from": [8, 0, 0], - "to": [16, 13, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [0, 3, 8, 16], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [0, 3, 16, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [8, 3, 16, 16], "texture": "#texture_side", "cullface": "south"}, - "down": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#texture_side", "cullface": "down"} - } - }, - { - "name": "upper_slope", - "from": [6.74, 9.49, -0.01], - "to": [17.76, 13.51, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 10.5, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture"}, - "east": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "south": {"uv": [0, 0, 11, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 11], "rotation": 90, "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 11], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "upper_slope_right", - "from": [6.75, 9.5, 16], - "to": [17.75, 13.5, 20], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 10.5, 8]}, - "faces": { - "east": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "south": {"uv": [0, 0, 11, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "south"}, - "up": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "south"}, - "down": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "south"} - } - }, - { - "name": "upper_slope_left", - "from": [6.75, 9.5, -4], - "to": [17.75, 13.5, 0], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 10.5, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "west": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "up": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "north"}, - "down": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "north"} - } - }, - { - "name": "lower_slope", - "from": [-0.89194, 1.58496, -0.01], - "to": [10.12806, 5.60496, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.63194, 2.59496, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture"}, - "south": {"uv": [0, 0, 11, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 11], "rotation": 90, "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 11], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope_right", - "from": [-0.88194, 1.59496, 16], - "to": [10.11806, 5.59496, 20], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.63194, 2.59496, 8]}, - "faces": { - "east": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "south": {"uv": [0, 0, 11, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "south"}, - "up": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "south"}, - "down": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "south"} - } - }, - { - "name": "lower_slope_left", - "from": [-0.88194, 1.59496, -4], - "to": [10.11806, 5.59496, 0], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.63194, 2.59496, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "west": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "up": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "north"}, - "down": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "north"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 135, 0], - "scale": [0.5, 0.5, 0.5] - }, - "head": { - "translation": [0, 14.25, 0] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "roof", - "origin": [0, 11, 7], - "color": 0, - "nbt": "{}", - "children": [ - { - "name": "main_block", - "origin": [0, 6, 1], - "color": 0, - "nbt": "{}", - "children": [0, 1] - }, - { - "name": "upper_slope", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [2, 3, 4] - }, - { - "name": "lower_slope", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [5, 6, 7] - } - ] - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof_inner.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof_inner.json deleted file mode 100644 index c735881..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof_inner.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "credit": "Made with Blockbench. Fixed by Carter.", - "parent": "minecraft:block/cube", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [8, 6, 8], - "rotation": {"angle": 0, "axis": "x", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [8, 10, 16, 16], "texture": "#texture_side", "cullface": "north"}, - "west": {"uv": [0, 10, 8, 16], "texture": "#texture_side", "cullface": "west"}, - "down": {"uv": [0, 8, 8, 16], "texture": "#texture_side", "cullface": "down"} - } - }, - { - "from": [8, 0, 0], - "to": [16, 13, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [0, 3, 8, 16], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [8, 3, 16, 16], "texture": "#texture_side", "cullface": "east"}, - "down": {"uv": [8, 8, 16, 16], "texture": "#texture_side", "cullface": "down"} - } - }, - { - "from": [0, 0, 8], - "to": [16, 13, 16], - "rotation": {"angle": 0, "axis": "x", "origin": [8, 0, 8]}, - "faces": { - "east": {"uv": [0, 3, 8, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [0, 3, 16, 16], "texture": "#texture_side", "cullface": "south"}, - "west": {"uv": [8, 3, 16, 16], "texture": "#texture_side", "cullface": "west"}, - "up": {"uv": [0, 8, 16, 16], "texture": "#texture_side"}, - "down": {"uv": [0, 0, 16, 8], "texture": "#texture_side", "cullface": "down"} - } - }, - { - "name": "upper_slope", - "from": [6.74, 9.49, -0.01], - "to": [17.76, 13.51, 15.91], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 10.5, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture"}, - "east": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "south": {"uv": [5, 0, 16, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 11], "rotation": 90, "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 11], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "upper_slope_left", - "from": [6.75, 9.5, -4], - "to": [17.75, 13.5, 0], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 10.5, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "west": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "up": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "north"}, - "down": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "north"} - } - }, - { - "name": "upper_slope", - "from": [-0.01, 9.49, 6.74], - "to": [15.91, 13.51, 17.76], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10.5, 8]}, - "faces": { - "north": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "east": {"uv": [0, 0, 11, 4], "texture": "#texture"}, - "south": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 11, 4], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 11], "rotation": 180, "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 11], "texture": "#texture"} - } - }, - { - "name": "upper_slope_right", - "from": [-4, 9.5, 6.75], - "to": [0, 13.5, 17.75], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10.5, 8]}, - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "west"}, - "south": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "west"}, - "west": {"uv": [0, 0, 11, 4], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 0, 4, 11], "rotation": 180, "texture": "#texture", "cullface": "west"}, - "down": {"uv": [12, 0, 16, 11], "texture": "#texture", "cullface": "west"} - } - }, - { - "name": "lower_slope", - "from": [1.10806, 1.58496, -0.01], - "to": [10.12806, 5.60496, 8.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.63194, 2.59496, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [0, 0, 8, 9], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope_left", - "from": [-0.88194, 1.59496, -4], - "to": [10.11806, 5.59496, 0], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.63194, 2.59496, 8]}, - "faces": { - "north": {"uv": [5, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "north"}, - "west": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "north"}, - "up": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "north"}, - "down": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "north"} - } - }, - { - "name": "lower_slope", - "from": [-0.01, 1.58496, 1.10806], - "to": [8.01, 5.60496, 10.12806], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 2.59496, -0.63194]}, - "faces": { - "west": {"uv": [0, 0, 11, 4], "texture": "#texture"}, - "up": {"uv": [8, 0, 16, 9], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope_right", - "from": [-4, 1.59496, -0.88194], - "to": [0, 5.59496, 10.11806], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 2.59496, -0.63194]}, - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "west"}, - "south": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "west"}, - "west": {"uv": [0, 0, 11, 4], "texture": "#texture", "cullface": "west"}, - "up": {"uv": [0, 0, 4, 11], "rotation": 180, "texture": "#texture", "cullface": "west"}, - "down": {"uv": [12, 0, 16, 11], "texture": "#texture", "cullface": "west"} - } - } - ], - "groups": [ - { - "name": "roof", - "origin": [0, 11, 7], - "color": 0, - "nbt": "{}", - "children": [ - { - "name": "main_block", - "origin": [0, 6, 1], - "color": 0, - "nbt": "{}", - "children": [0, 1, 2] - }, - { - "name": "upper_slope", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [3, 4] - }, - { - "name": "upper_slope", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [5, 6] - }, - { - "name": "lower_slope", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [7, 8] - }, - { - "name": "lower_slope", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [9, 10] - } - ] - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof_outer.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof_outer.json deleted file mode 100644 index 6a67de1..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_roof_outer.json +++ /dev/null @@ -1,361 +0,0 @@ -{ - "credit": "Made with Blockbench. Fixed by Carter.", - "parent": "minecraft:block/cube", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 6, 16], - "faces": { - "north": {"uv": [0, 10, 16, 16], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [0, 10, 16, 16], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [0, 10, 16, 16], "texture": "#texture_side", "cullface": "south"}, - "west": {"uv": [0, 10, 16, 16], "texture": "#texture_side", "cullface": "west"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#texture_side", "cullface": "down"} - } - }, - { - "from": [7, 6, 7], - "to": [16, 13, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 1]}, - "faces": { - "east": {"uv": [0, 3, 9, 10], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [7, 3, 16, 10], "texture": "#texture_side", "cullface": "south"} - } - }, - { - "from": [-1.5, 5.5, -1], - "to": [1.5, 8.5, 10], - "rotation": {"angle": 45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [6, 0, 9, 3], "texture": "#texture"}, - "east": {"uv": [0, 0, 11, 3], "texture": "#texture"}, - "west": {"uv": [5, 0, 16, 3], "texture": "#texture"}, - "up": {"uv": [6, 0, 9, 11], "texture": "#texture"}, - "down": {"uv": [6, 0, 9, 11], "texture": "#texture"} - } - }, - { - "from": [-1.5, 8.5, 5], - "to": [1.5, 10.5, 12], - "rotation": {"angle": 45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [6, 0, 9, 2], "texture": "#texture"}, - "east": {"uv": [9, 0, 16, 2], "texture": "#texture"}, - "west": {"uv": [0, 0, 7, 2], "texture": "#texture"}, - "up": {"uv": [6, 0, 9, 7], "texture": "#texture"} - } - }, - { - "from": [-1.5, 15.5, 16], - "to": [1.5, 17.5, 25], - "rotation": {"angle": 45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [6, 0, 9, 2], "texture": "#texture"}, - "east": {"uv": [7, 0, 16, 2], "texture": "#texture"}, - "south": {"uv": [6, 0, 9, 2], "texture": "#texture"}, - "west": {"uv": [0, 0, 9, 2], "texture": "#texture"}, - "up": {"uv": [6, 0, 9, 7], "texture": "#texture"}, - "down": {"uv": [6, 0, 9, 7], "texture": "#texture"} - } - }, - { - "from": [-1.5, 12.5, 10], - "to": [1.5, 15.5, 21], - "rotation": {"angle": 45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [6, 0, 9, 3], "texture": "#texture"}, - "east": {"uv": [0, 0, 11, 3], "texture": "#texture"}, - "west": {"uv": [5, 0, 16, 3], "texture": "#texture"}, - "up": {"uv": [6, 0, 9, 11], "texture": "#texture"}, - "down": {"uv": [6, 0, 9, 11], "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [-0.01, 1.66108, -0.50926], - "to": [16.01, 5.68108, 3.51074], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 1.67108, -0.24926]}, - "faces": { - "north": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "east": {"uv": [12, 0, 16, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#texture"}, - "up": {"uv": [0, 7, 16, 11], "rotation": 180, "texture": "#texture"}, - "down": {"uv": [0, 12, 16, 16], "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [1.99, 1.66108, 3.49074], - "to": [16.01, 5.68108, 5.51074], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 1.67108, -0.24926]}, - "faces": { - "east": {"uv": [10, 0, 12, 4], "texture": "#texture"}, - "up": {"uv": [0, 5, 14, 7], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [3.99, 1.66108, 5.49074], - "to": [16.01, 5.68108, 7.51074], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 1.67108, -0.24926]}, - "faces": { - "east": {"uv": [8, 0, 10, 4], "texture": "#texture"}, - "up": {"uv": [0, 3, 12, 5], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [5.99, 1.66108, 7.49074], - "to": [16.01, 5.68108, 10.51074], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 1.67108, -0.24926]}, - "faces": { - "east": {"uv": [5, 0, 8, 4], "texture": "#texture"}, - "up": {"uv": [0, 0, 10, 3], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope_left", - "from": [16, 1.67108, -0.49926], - "to": [20, 5.67108, 10.50074], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 1.67108, -0.24926]}, - "faces": { - "north": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "east"}, - "east": {"uv": [5, 0, 16, 4], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "east"}, - "up": {"uv": [12, 0, 16, 11], "rotation": 180, "texture": "#texture", "cullface": "east"}, - "down": {"uv": [0, 0, 4, 11], "texture": "#texture", "cullface": "east"} - } - }, - { - "name": "lower_slope", - "from": [7.99, 9.56612, 7.12268], - "to": [16.01, 13.58612, 10.14268], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.57612, 8.38268]}, - "faces": { - "north": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "east": {"uv": [13, 0, 16, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 3, 4], "texture": "#texture"}, - "up": {"uv": [0, 8, 8.02, 11.02], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [8.99, 9.56612, 10.12268], - "to": [16.01, 13.58612, 12.14268], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.57612, 8.38268]}, - "faces": { - "north": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "east": {"uv": [11, 0, 13, 4], "texture": "#texture"}, - "up": {"uv": [0, 6, 7, 8], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [10.99, 9.56612, 12.12268], - "to": [16.01, 13.58612, 14.14268], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.57612, 8.38268]}, - "faces": { - "north": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "east": {"uv": [9, 0, 11, 4], "texture": "#texture"}, - "up": {"uv": [0, 4, 5, 6], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [12.99, 9.56612, 14.12268], - "to": [16.01, 13.58612, 17.14268], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.57612, 8.38268]}, - "faces": { - "north": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "east": {"uv": [8, 0, 11, 4], "texture": "#texture"}, - "south": {"uv": [13, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [0, 1, 3, 4], "rotation": 180, "texture": "#texture"} - } - }, - { - "name": "lower_slope_left", - "from": [16, 9.57612, 7.13268], - "to": [20, 13.57612, 18.13268], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.57612, 8.38268]}, - "faces": { - "north": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "east"}, - "east": {"uv": [5, 0, 16, 4], "texture": "#texture", "cullface": "east"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "east"}, - "up": {"uv": [12, 0, 16, 11], "rotation": 180, "texture": "#texture", "cullface": "east"}, - "down": {"uv": [0, 0, 4, 11], "texture": "#texture", "cullface": "east"} - } - }, - { - "name": "lower_slope", - "from": [-0.50926, 1.66108, -0.01], - "to": [3.51074, 5.68108, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.24926, 1.67108, 16]}, - "faces": { - "north": {"uv": [12, 0, 16, 4], "texture": "#texture"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [0, 7, 16, 11], "rotation": 90, "texture": "#texture"}, - "down": {"uv": [0, 12, 16, 16], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [3.49074, 1.66108, 1.99], - "to": [5.51074, 5.68108, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.24926, 1.67108, 16]}, - "faces": { - "south": {"uv": [4, 0, 6, 4], "texture": "#texture"}, - "up": {"uv": [2, 5, 16, 7], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [5.49074, 1.66108, 3.99], - "to": [7.51074, 5.68108, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.24926, 1.67108, 16]}, - "faces": { - "south": {"uv": [6, 0, 8, 4], "texture": "#texture"}, - "up": {"uv": [4, 3, 16, 5], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [7.49074, 1.66108, 5.99], - "to": [10.51074, 5.68108, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.24926, 1.67108, 16]}, - "faces": { - "south": {"uv": [8, 0, 11, 4], "texture": "#texture"}, - "up": {"uv": [6, 0, 16, 3], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope_right", - "from": [-0.49926, 1.67108, 16], - "to": [10.50074, 5.67108, 20], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.24926, 1.67108, 16]}, - "faces": { - "east": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "south": {"uv": [0, 0, 11, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "south"}, - "up": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "south"}, - "down": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "south"} - } - }, - { - "name": "lower_slope", - "from": [7.12268, 9.56612, 7.99], - "to": [10.14268, 13.58612, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8.38268, 9.57612, 16]}, - "faces": { - "north": {"uv": [13, 0, 16, 4], "texture": "#texture"}, - "south": {"uv": [0, 0, 3, 4], "texture": "#texture"}, - "west": {"uv": [8, 0, 16, 4], "texture": "#texture"}, - "up": {"uv": [7.98, 8, 16, 11.02], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [10.12268, 9.56612, 8.99], - "to": [12.14268, 13.58612, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8.38268, 9.57612, 16]}, - "faces": { - "south": {"uv": [4, 0, 6, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "up": {"uv": [8.98, 6, 16, 8.02], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [12.12268, 9.56612, 10.99], - "to": [14.14268, 13.58612, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8.38268, 9.57612, 16]}, - "faces": { - "south": {"uv": [6, 0, 8, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "up": {"uv": [11, 4, 16, 6], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope", - "from": [14.12268, 9.56612, 12.99], - "to": [17.14268, 13.58612, 16.01], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8.38268, 9.57612, 16]}, - "faces": { - "east": {"uv": [0, 0, 3, 4], "texture": "#texture"}, - "south": {"uv": [8, 0, 11, 4], "texture": "#texture"}, - "west": {"uv": [0, 0, 8, 4], "texture": "#texture"}, - "up": {"uv": [13, 1, 16, 4], "rotation": 90, "texture": "#texture"} - } - }, - { - "name": "lower_slope_right", - "from": [7.13268, 9.57612, 16], - "to": [18.13268, 13.57612, 20], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8.38268, 9.57612, 16]}, - "faces": { - "east": {"uv": [12, 0, 16, 4], "texture": "#texture", "cullface": "south"}, - "south": {"uv": [0, 0, 11, 4], "texture": "#texture", "cullface": "south"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#texture", "cullface": "south"}, - "up": {"uv": [0, 0, 4, 11], "rotation": 90, "texture": "#texture", "cullface": "south"}, - "down": {"uv": [12, 0, 16, 11], "rotation": 90, "texture": "#texture", "cullface": "south"} - } - } - ], - "groups": [ - { - "name": "roof", - "origin": [0, 11, 7], - "color": 0, - "nbt": "{}", - "children": [ - 0, - 1, - { - "name": "lower_tip", - "origin": [0, 0, 0], - "color": 0, - "nbt": "{}", - "children": [2, 3, 4, 5] - }, - { - "name": "upper_tip", - "origin": [0, 0, 0], - "color": 0, - "nbt": "{}", - "children": [] - }, - { - "name": "lower_slope_left", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [6, 7, 8, 9, 10] - }, - { - "name": "upper_slope_left", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [11, 12, 13, 14, 15] - }, - { - "name": "lower_slope_right", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [16, 17, 18, 19, 20] - }, - { - "name": "upper_slope_right", - "origin": [1, 10.5, 8], - "color": 0, - "nbt": "{}", - "children": [21, 22, 23, 24, 25] - } - ] - } - ] -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_round_arch.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_round_arch.json deleted file mode 100644 index 91b9290..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_round_arch.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "parent": "architecture_extensions:block/round_arch.gltf", - "loader": "suspicious_shapes:gltf", - "textures": { - "particle": "#texture", - "all": "#texture" - }, - "uvlock": true, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 315, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 315, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "scale": [0.625, 0.625, 0.625] - }, - "head": { - "rotation": [0, 180, 0], - "translation": [0, 13, 7] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_round_fence_post.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_round_fence_post.json deleted file mode 100644 index 9e81a70..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_round_fence_post.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "parent": "architecture_extensions:block/round_fence_post.gltf", - "loader": "suspicious_shapes:gltf", - "textures": { - "particle": "#texture", - "all": "#texture" - }, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_transom.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_transom.json deleted file mode 100644 index 17dfb66..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_transom.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "glass": "block/light_blue_stained_glass", - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 2, 4], - "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#texture"}, - "east": {"uv": [6, 0, 10, 2], "texture": "#texture"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#texture"}, - "west": {"uv": [6, 0, 10, 2], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 4], "texture": "#texture"} - } - }, - { - "from": [0, 14, 0], - "to": [16, 16, 4], - "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#texture"}, - "east": {"uv": [6, 0, 10, 2], "texture": "#texture"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#texture"}, - "west": {"uv": [6, 0, 10, 2], "texture": "#texture"}, - "up": {"uv": [0, 0, 16, 4], "texture": "#texture"}, - "down": {"uv": [0, 0, 16, 4], "texture": "#texture"} - } - }, - { - "from": [0, 2, 0], - "to": [2, 14, 4], - "faces": { - "north": {"uv": [7, 2, 9, 14], "texture": "#texture"}, - "east": {"uv": [6, 2, 10, 14], "texture": "#texture"}, - "south": {"uv": [7, 2, 9, 14], "texture": "#texture"}, - "west": {"uv": [6, 2, 10, 14], "texture": "#texture"}, - "up": {"uv": [0, 0, 2, 4], "texture": "#texture"}, - "down": {"uv": [0, 0, 2, 4], "texture": "#texture"} - } - }, - { - "from": [14, 2, 0], - "to": [16, 14, 4], - "faces": { - "north": {"uv": [7, 2, 9, 14], "texture": "#texture"}, - "east": {"uv": [6, 2, 10, 14], "texture": "#texture"}, - "south": {"uv": [7, 2, 9, 14], "texture": "#texture"}, - "west": {"uv": [6, 2, 10, 14], "texture": "#texture"}, - "up": {"uv": [0, 0, 2, 4], "texture": "#texture"}, - "down": {"uv": [0, 0, 2, 4], "texture": "#texture"} - } - }, - { - "from": [2, 2, 1], - "to": [14, 14, 3], - "faces": { - "north": {"uv": [2, 2, 14, 14], "texture": "#glass"}, - "south": {"uv": [2, 2, 14, 14], "texture": "#glass"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 1.5], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [-3.5, 1.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_tube_metal.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_tube_metal.json deleted file mode 100644 index 1d26ba3..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_tube_metal.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "particle": "#texture" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [3, 16, 16], - "faces": { - "north": {"uv": [13.032, 0.032, 15.968, 15.968], "texture": "#texture"}, - "east": {"uv": [0.032, 0.032, 15.968, 15.968], "texture": "#texture"}, - "south": {"uv": [0.032, 0.032, 2.968, 15.968], "texture": "#texture"}, - "west": {"uv": [0.032, 0.032, 15.968, 15.968], "texture": "#texture"}, - "up": {"uv": [0.032, 0.032, 2.968, 15.968], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [0.032, 0.032, 2.968, 15.968], "texture": "#texture_up", "cullface": "down"} - } - }, - { - "from": [13, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0.032, 0.032, 2.968, 15.968], "texture": "#texture"}, - "east": {"uv": [0.032, 0.032, 15.968, 15.968], "texture": "#texture"}, - "south": {"uv": [13.032, 0.032, 15.968, 15.968], "texture": "#texture"}, - "west": {"uv": [0.032, 0.032, 15.968, 15.968], "texture": "#texture"}, - "up": {"uv": [13.032, 0.032, 15.968, 15.968], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [13.032, 0.032, 15.968, 15.968], "texture": "#texture_up", "cullface": "down"} - } - }, - { - "from": [3, 0, 13], - "to": [13, 16, 16], - "faces": { - "north": {"uv": [3.032, 0.032, 12.968, 15.968], "texture": "#texture"}, - "south": {"uv": [3.032, 0.032, 12.968, 15.968], "texture": "#texture"}, - "up": {"uv": [3.032, 13.032, 12.968, 15.968], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [3.032, 0.032, 12.968, 2.968], "texture": "#texture_up", "cullface": "down"} - } - }, - { - "from": [3, 0, 0], - "to": [13, 16, 3], - "faces": { - "north": {"uv": [3.032, 0.032, 12.968, 15.968], "texture": "#texture"}, - "south": {"uv": [3.032, 0.032, 12.968, 15.968], "texture": "#texture"}, - "up": {"uv": [3.032, 0.032, 12.968, 2.968], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [3.032, 13.032, 12.968, 15.968], "texture": "#texture_up", "cullface": "down"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_column.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_column.json deleted file mode 100644 index 0130c50..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_column.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "particle": "#texture_side" - }, - "elements": [ - { - "from": [2, 0, 0], - "to": [14, 16, 4], - "faces": { - "north": {"uv": [2, 0, 14, 16], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [12, 0, 16, 16], "texture": "#texture_side"}, - "south": {"uv": [2, 0, 14, 16], "texture": "#texture_side"}, - "west": {"uv": [0, 0, 4, 16], "texture": "#texture_side"}, - "up": {"uv": [2, 0, 14, 4], "texture": "#texture_up", "cullface": "up"}, - "down": {"uv": [2, 0, 14, 4], "texture": "#texture_down", "cullface": "down"} - } - } - ], - "display": { - "gui": { - "rotation": [30, 225, 0], - "translation": [-2.5, 0, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, -180, 0], - "translation": [0, 0, -8] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_column_cap.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_column_cap.json deleted file mode 100644 index 295da5a..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_column_cap.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "particle": "#texture_side" - }, - "elements": [ - { - "from": [2, 0, 0], - "to": [14, 12, 4], - "faces": { - "north": {"uv": [2, 4, 14, 16], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [12, 4, 16, 16], "texture": "#texture_side"}, - "south": {"uv": [2, 4, 14, 16], "texture": "#texture_side"}, - "west": {"uv": [0, 4, 4, 16], "texture": "#texture_side"}, - "down": {"uv": [2, 0, 14, 4], "texture": "#texture_down", "cullface": "down"} - } - }, - { - "from": [1, 12, 0], - "to": [15, 14, 5], - "faces": { - "north": {"uv": [1, 2, 15, 4], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [11, 2, 16, 4], "texture": "#texture_side"}, - "south": {"uv": [1, 2, 15, 4], "texture": "#texture_side"}, - "west": {"uv": [0, 2, 5, 4], "texture": "#texture_side"}, - "down": {"uv": [1, 0, 15, 5], "texture": "#texture_down"} - } - }, - { - "from": [0, 14, 0], - "to": [16, 16, 6], - "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#texture_side", "cullface": "north"}, - "east": {"uv": [10, 0, 16, 2], "texture": "#texture_side", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#texture_side"}, - "west": {"uv": [0, 0, 6, 2], "texture": "#texture_side", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 6], "texture": "#texture_up"}, - "down": {"uv": [0, 0, 16, 6], "texture": "#texture_down"} - } - } - ], - "display": { - "gui": { - "rotation": [30, 225, 0], - "translation": [-2.5, 0, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, -180, 0], - "translation": [0, 0, -8] - } - } -} diff --git a/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_post.json b/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_post.json deleted file mode 100644 index ed0f595..0000000 --- a/src/main/resources/assets/architecture_extensions/templates/model/block/template_wall_post.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "#texture" - }, - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } -} diff --git a/src/main/resources/assets/minecraft/atlases/blocks.json b/src/main/resources/assets/minecraft/atlases/blocks.json deleted file mode 100644 index 8ca584b..0000000 --- a/src/main/resources/assets/minecraft/atlases/blocks.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "sources": [ - { - "type": "single", - "resource": "minecraft:entity/end_portal" - } - ] -} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..f612a4c --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,31 @@ +{ + "schemaVersion": 1, + "id": "arch_ex", + "version": "${version}", + "name": "Architecture Extensions", + "description": "Make more detailed builds with all kinds of new building blocks and shapes.", + "contributors": [ + "woodiertexas", + "maximum", + "Falkreon", + "Crackers0106", + "Carter", + "Azagwen" + ], + "contact": { + "homepage": "https://modrinth.com/mod/arch-ex", + "issues": "https://github.com/DebuggyTeam/architecture-extensions/issues", + "sources": "https://github.com/DebuggyTeam/architecture-extensions" + }, + "license": "MIT", + "icon": "assets/architecture_extensions/icon.png", + "environment": "*", + "entrypoints": {}, + "mixins": [], + "depends": { + "fabricloader": ">=0.16.9", + "minecraft": ["1.20", "1.20.1"], + "java": ">=17", + "fabric-api": "*" + } +} diff --git a/src/main/resources/staticdata/architecture_extensions/debuggy_block.json b/src/main/resources/staticdata/architecture_extensions/debuggy_block.json deleted file mode 100644 index b371815..0000000 --- a/src/main/resources/staticdata/architecture_extensions/debuggy_block.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "debuggy_block", - "base_block": "architecture_extensions:debuggy_block", - "textures": "minecraft:block/debug", - "recipes": "stonecutting", - "map_color": "sand", - "types_to_generate": [ "#stone" ] -}