Skip to content

Commit

Permalink
Merge pull request #34 from maximumpower55/1.20
Browse files Browse the repository at this point in the history
1.20
  • Loading branch information
maximumpower55 authored Jun 12, 2023
2 parents e84e261 + 8042556 commit d3b4d21
Show file tree
Hide file tree
Showing 14 changed files with 244 additions and 379 deletions.
14 changes: 13 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,17 @@ version = project.version
group = project.maven_group

repositories {

exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
filter {
includeGroup "maven.modrinth"
}
}
}

dependencies {
Expand All @@ -20,6 +30,8 @@ dependencies {
modImplementation libs.quilt.loader

modImplementation libs.quilted.fabric.api

modImplementation include("maven.modrinth:static-data:1.0.1+1.20")
}

processResources {
Expand Down
9 changes: 4 additions & 5 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
[versions]
# The latest versions are available at https://lambdaurora.dev/tools/import_quilt.html
minecraft = "1.19.4"
quilt_mappings = "1.19.4+build.10"
quilt_loader = "0.19.0-beta.12"
quilted_fabric_api = "6.0.0-beta.4+0.78.0-1.19.4"
minecraft = "1.20"
quilt_mappings = "1.20+build.4"
quilt_loader = "0.19.0-beta.18"
quilted_fabric_api = "7.0.1+0.83.0-1.20"

[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]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@
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 io.github.debuggyteam.architecture_extensions.staticdata.StaticData;
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.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Set;

Expand All @@ -31,39 +33,32 @@
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, ResourcePackRegistrationContext.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 ItemGroup ITEM_GROUP;
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) -> {
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 InMemoryResourcePack RESOURCE_PACK = new InMemoryResourcePack.Named(id("pack/runtime").toString()) {
@Override
protected void dumpResource(Path parentPath, String resourcePath, byte[] resource) {
super.dumpResource(parentPath, resourcePath.replaceFirst("architecture_extensions:", ""), resource);
};

@Override
protected void dumpAll() {
dumpTo(Paths.get("debug", "packs", "architecture_extensions"));
}
};
public static final InMemoryResourcePack RESOURCE_PACK = new InMemoryResourcePack.Named("Architecture Extensions");

@Override
public void onInitialize(ModContainer mod) {
MOD_CONTAINER = mod;

ITEM_GROUP = FabricItemGroup
.builder(id("building_blocks"))
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();
.build()
);

PeculiarBlocks.register();

Expand All @@ -79,9 +74,9 @@ public void onInitialize(ModContainer mod) {
}

// Find and register staticdata blocks
List<StaticData.Item> dataRegistrations = StaticData.getData(new Identifier("architecture_extensions", ""));
List<StaticDataItem> dataRegistrations = StaticData.getDataInDirectory(new Identifier("architecture_extensions", ""), true);
Gson gson = new GsonBuilder().create();
for(StaticData.Item item : dataRegistrations) {
for(StaticDataItem item : dataRegistrations) {
try {
BlockGroupSchema data = gson.fromJson(item.getAsString(), BlockGroupSchema.class);

Expand All @@ -94,10 +89,10 @@ public void onInitialize(ModContainer mod) {
BlockGroup group = data.createBlockGroup();
Set<BlockType> blockTypes = data.getBlockTypes();
for(BlockGroup.GroupedBlock groupedBlock : group) {
DeferredRegistration.register(item.modId(), group, groupedBlock, blockTypes, CALLBACK_ADD_TO_ITEM_GROUP);
DeferredRegistration.register(item.getModId(), group, groupedBlock, blockTypes, CALLBACK_ADD_TO_ITEM_GROUP);
}
} catch (IOException ex) {
throw new RuntimeException("There was a problem getting staticdata for mod container '"+item.modId()+"' with resource id '"+item.resourceId()+"'.", ex);
throw new RuntimeException("There was a problem getting staticdata for mod container '"+item.getModId()+"' with resource id '"+item.getResourceId()+"'.", ex);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@
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<ItemGroup, TypedGroupedItem> ITEM_GROUP_ITEMS = LinkedHashMultimap.create();
private static final Multimap<RegistryKey<ItemGroup>, TypedGroupedItem> ITEM_GROUP_ITEMS = LinkedHashMultimap.create();

public static void pull(ItemGroup itemGroup, @Nullable BlockType type, @Nullable Block baseBlock, Item item) {
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));
}

Expand All @@ -40,7 +41,7 @@ private static Collection<Item> typedGroupingSort(Collection<TypedGroupedItem> u
return sorted;
}

private static void pushInto(ItemGroup itemGroup) {
private static void pushInto(RegistryKey<ItemGroup> itemGroup) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> typedGroupingSort(ITEM_GROUP_ITEMS.get(itemGroup)).forEach(entries::addItem));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,18 @@

import net.minecraft.block.Block;
import net.minecraft.block.EndRodBlock;
import net.minecraft.block.Material;
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.of(Material.STONE).strength(1f).luminance(14).nonOpaque().requiresTool());
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.of(Material.WOOL).strength(1f).sounds(BlockSoundGroup.WOOL).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.of(Material.WOOL).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);
Expand Down
Loading

0 comments on commit d3b4d21

Please sign in to comment.