First look of 22w42a while we wait

This commit is contained in:
shedaniel
2022-10-21 00:04:42 +08:00
parent 6a9d61aa42
commit 2bc32b35d2
24 changed files with 269 additions and 261 deletions

View File

@@ -22,6 +22,7 @@ package dev.architectury.test.entity;
import com.google.common.base.Suppliers;
import dev.architectury.networking.NetworkManager;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.animal.Cow;
@@ -38,7 +39,7 @@ public class TestEntity extends Cow {
}
@Override
public Packet<?> getAddEntityPacket() {
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkManager.createAddEntityPacket(this);
}
}

View File

@@ -299,9 +299,9 @@ public class DebugEvents {
ClientRecipeUpdateEvent.EVENT.register(recipeManager -> {
TestMod.SINK.accept("Client recipes received");
});
ClientTextureStitchEvent.POST.register(atlas -> {
TestMod.SINK.accept("Client texture stitched: " + atlas.location());
});
// ClientTextureStitchEvent.POST.register(atlas -> {
// TestMod.SINK.accept("Client texture stitched: " + atlas.location());
// });
ClientScreenInputEvent.MOUSE_SCROLLED_PRE.register((client, screen, mouseX, mouseY, amount) -> {
TestMod.SINK.accept("Screen Mouse scrolled: %.2f distance", amount);
return EventResult.pass();

View File

@@ -22,22 +22,30 @@ package dev.architectury.test.recipes;
import com.google.gson.JsonObject;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.GsonHelper;
import net.minecraft.world.item.crafting.CraftingBookCategory;
import net.minecraft.world.item.crafting.CustomRecipe;
import net.minecraft.world.item.crafting.FireworkRocketRecipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import java.util.Objects;
public class TestRecipeSerializer implements RecipeSerializer<CustomRecipe> {
@Override
public CustomRecipe fromJson(ResourceLocation id, JsonObject json) {
return new FireworkRocketRecipe(id);
CraftingBookCategory category = Objects.requireNonNullElse(
CraftingBookCategory.CODEC.byName(GsonHelper.getAsString(json, "category", null)), CraftingBookCategory.MISC);
return new FireworkRocketRecipe(id, category);
}
@Override
public CustomRecipe fromNetwork(ResourceLocation id, FriendlyByteBuf buf) {
return new FireworkRocketRecipe(id);
CraftingBookCategory category = buf.readEnum(CraftingBookCategory.class);
return new FireworkRocketRecipe(id, category);
}
@Override
public void toNetwork(FriendlyByteBuf buf, CustomRecipe recipe) {
buf.writeEnum(recipe.category());
}
}

View File

@@ -34,7 +34,6 @@ import dev.architectury.test.TestMod;
import dev.architectury.test.entity.TestEntity;
import dev.architectury.test.recipes.TestRecipeSerializer;
import dev.architectury.test.registry.objects.EquippableTickingItem;
import dev.architectury.test.tab.TestCreativeTabs;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
@@ -100,27 +99,27 @@ public class TestRegistries {
});
public static final RegistrySupplier<Item> TEST_ITEM = ITEMS.register("test_item", () ->
new Item(new Item.Properties().tab(TestCreativeTabs.TEST_TAB)));
new Item(new Item.Properties()));
public static final RegistrySupplier<Item> TEST_EQUIPPABLE = ITEMS.register("test_eqippable", () ->
new EquippableTickingItem(new Item.Properties().tab(TestCreativeTabs.TEST_TAB)));
new EquippableTickingItem(new Item.Properties()));
public static final RegistrySupplier<Item> TEST_EDIBLE = ITEMS.register("test_edible", () -> {
FoodProperties.Builder fpBuilder = new FoodProperties.Builder().nutrition(8).saturationMod(0.8F).meat();
FoodPropertiesHooks.effect(fpBuilder, () -> new MobEffectInstance(TEST_EFFECT.get(), 100), 1);
return new Item(new Item.Properties().tab(TestCreativeTabs.TEST_TAB).food(fpBuilder.build()));
return new Item(new Item.Properties().food(fpBuilder.build()));
});
public static final RegistrySupplier<Item> TEST_SPAWN_EGG = ITEMS.register("test_spawn_egg", () ->
new ArchitecturySpawnEggItem(TestRegistries.TEST_ENTITY, 0xFF000000, 0xFFFFFFFF,
new Item.Properties().tab(TestCreativeTabs.TEST_TAB)));
new Item.Properties()));
public static final RegistrySupplier<Item> TEST_SPAWN_EGG_2 = ITEMS.register("test_spawn_egg_2", () ->
new ArchitecturySpawnEggItem(TestRegistries.TEST_ENTITY_2, 0xFFFFFFFF, 0xFF000000,
new Item.Properties().tab(TestCreativeTabs.TEST_TAB)));
new Item.Properties()));
public static final RegistrySupplier<Item> TEST_FLUID_BUCKET = ITEMS.register("test_fluid_bucket", () -> {
try {
// In example mod the forge class isn't being replaced, this is not required in mods depending on architectury
return (Item) Class.forName(!Platform.isForge() ? "dev.architectury.core.item.ArchitecturyBucketItem" : "dev.architectury.core.item.forge.imitator.ArchitecturyBucketItem")
.getDeclaredConstructor(Supplier.class, Item.Properties.class)
.newInstance(TestRegistries.TEST_FLUID, new Item.Properties().tab(TestCreativeTabs.TEST_TAB));
.newInstance(TestRegistries.TEST_FLUID, new Item.Properties());
} catch (InstantiationException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException |
IllegalAccessException e) {
throw new RuntimeException(e);
@@ -175,9 +174,9 @@ public class TestRegistries {
});
public static final RegistrySupplier<Item> TEST_BLOCK_ITEM = ITEMS.register("test_block", () ->
new BlockItem(TEST_BLOCK.get(), new Item.Properties().tab(TestCreativeTabs.TEST_TAB)));
new BlockItem(TEST_BLOCK.get(), new Item.Properties()));
public static final RegistrySupplier<Item> COLLISION_BLOCK_ITEM = ITEMS.register("collision_block", () ->
new BlockItem(COLLISION_BLOCK.get(), new Item.Properties().tab(TestCreativeTabs.TEST_TAB)));
new BlockItem(COLLISION_BLOCK.get(), new Item.Properties()));
public static final RegistrySupplier<EntityType<TestEntity>> TEST_ENTITY = ENTITY_TYPES.register("test_entity", TestEntity.TYPE);
public static final RegistrySupplier<EntityType<TestEntity>> TEST_ENTITY_2 = ENTITY_TYPES.register("test_entity_2", TestEntity.TYPE_2);

View File

@@ -28,5 +28,14 @@ import net.minecraft.world.item.ItemStack;
public class TestCreativeTabs {
public static final CreativeModeTab TEST_TAB = CreativeTabRegistry.create(new ResourceLocation(TestMod.MOD_ID, "test_tab"),
() -> new ItemStack(TestRegistries.TEST_ITEM.get()));
() -> new ItemStack(TestRegistries.TEST_ITEM.get()), (featureFlagSet, output) -> {
output.accept(TestRegistries.TEST_ITEM.get());
output.accept(TestRegistries.TEST_EQUIPPABLE.get());
output.accept(TestRegistries.TEST_EDIBLE.get());
output.accept(TestRegistries.TEST_SPAWN_EGG.get());
output.accept(TestRegistries.TEST_SPAWN_EGG_2.get());
output.accept(TestRegistries.TEST_FLUID_BUCKET.get());
output.accept(TestRegistries.TEST_BLOCK_ITEM.get());
output.accept(TestRegistries.COLLISION_BLOCK_ITEM.get());
});
}