mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-31 05:15:56 -05:00
First look of 22w42a while we wait
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user