mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-02 13:37:43 -05:00
@@ -24,7 +24,6 @@ import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.dispenser.BlockSource;
|
||||
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
||||
import net.minecraft.core.dispenser.DispenseItemBehavior;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.MobSpawnType;
|
||||
@@ -48,7 +47,7 @@ public class ArchitecturySpawnEggItem extends SpawnEggItem {
|
||||
@Override
|
||||
public ItemStack execute(BlockSource source, ItemStack stack) {
|
||||
Direction direction = source.state().getValue(DispenserBlock.FACING);
|
||||
EntityType<?> entityType = ((SpawnEggItem) stack.getItem()).getType(stack.getTag());
|
||||
EntityType<?> entityType = ((SpawnEggItem) stack.getItem()).getType(stack);
|
||||
|
||||
try {
|
||||
entityType.spawn(source.level(), stack, null, source.pos().relative(direction), MobSpawnType.DISPENSER, direction != Direction.UP, false);
|
||||
@@ -86,8 +85,8 @@ public class ArchitecturySpawnEggItem extends SpawnEggItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType<?> getType(@Nullable CompoundTag compoundTag) {
|
||||
EntityType<?> type = super.getType(compoundTag);
|
||||
public EntityType<?> getType(ItemStack itemStack) {
|
||||
EntityType<?> type = super.getType(itemStack);
|
||||
return type == null ? entityType.get() : type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* This file is part of architectury.
|
||||
* Copyright (C) 2020, 2021, 2022 architectury
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package dev.architectury.extensions.injected;
|
||||
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.world.level.gameevent.GameEvent;
|
||||
|
||||
public interface InjectedGameEventExtension extends InjectedRegistryEntryExtension<GameEvent> {
|
||||
@Override
|
||||
default Holder<GameEvent> arch$holder() {
|
||||
return ((GameEvent) this).builtInRegistryHolder();
|
||||
}
|
||||
}
|
||||
@@ -69,6 +69,11 @@ public interface RegistrySupplierImpl<T> extends RegistrySupplier<T> {
|
||||
return holder != null && holder.is(tagKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
default boolean is(Holder<T> holder) {
|
||||
return holder.is(getKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
default Stream<TagKey<T>> tags() {
|
||||
Holder<T> holder = getHolder();
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* This file is part of architectury.
|
||||
* Copyright (C) 2020, 2021, 2022 architectury
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package dev.architectury.mixin.inject;
|
||||
|
||||
import dev.architectury.extensions.injected.InjectedGameEventExtension;
|
||||
import net.minecraft.world.level.gameevent.GameEvent;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
||||
@Mixin(GameEvent.class)
|
||||
public class MixinGameEvent implements InjectedGameEventExtension {
|
||||
}
|
||||
@@ -22,6 +22,7 @@ package dev.architectury.registry.level.entity;
|
||||
import dev.architectury.injectables.annotations.ExpectPlatform;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.SpawnPlacementType;
|
||||
import net.minecraft.world.entity.SpawnPlacements;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
|
||||
@@ -38,7 +39,7 @@ public final class SpawnPlacementsRegistry {
|
||||
* @see net.minecraft.world.entity.SpawnPlacements
|
||||
*/
|
||||
@ExpectPlatform
|
||||
public static <T extends Mob> void register(Supplier<? extends EntityType<T>> type, SpawnPlacements.Type spawnPlacement, Heightmap.Types heightmapType, SpawnPlacements.SpawnPredicate<T> spawnPredicate) {
|
||||
public static <T extends Mob> void register(Supplier<? extends EntityType<T>> type, SpawnPlacementType spawnPlacement, Heightmap.Types heightmapType, SpawnPlacements.SpawnPredicate<T> spawnPredicate) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,9 +23,12 @@ import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.npc.VillagerTrades;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.trading.ItemCost;
|
||||
import net.minecraft.world.item.trading.MerchantOffer;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* This class is the easiest implementation of a trade object.
|
||||
* All trades added by vanilla do have custom classes like {@link VillagerTrades.EmeraldForItems}, but they aren't accessible.
|
||||
@@ -36,7 +39,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* or
|
||||
* {@link TradeRegistry#registerTradeForWanderingTrader(boolean, VillagerTrades.ItemListing...)}.
|
||||
*/
|
||||
public record SimpleTrade(ItemStack primaryPrice, ItemStack secondaryPrice,
|
||||
public record SimpleTrade(ItemCost primaryPrice, Optional<ItemCost> secondaryPrice,
|
||||
ItemStack sale, int maxTrades, int experiencePoints,
|
||||
float priceMultiplier) implements VillagerTrades.ItemListing {
|
||||
/**
|
||||
@@ -44,7 +47,7 @@ public record SimpleTrade(ItemStack primaryPrice, ItemStack secondaryPrice,
|
||||
* You can take a look at all the values the vanilla game uses right here {@link VillagerTrades#TRADES}.
|
||||
*
|
||||
* @param primaryPrice The first price a player has to pay to get the 'sale' stack.
|
||||
* @param secondaryPrice A optional, secondary price to pay as well as the primary one. If not needed just use {@link ItemStack#EMPTY}.
|
||||
* @param secondaryPrice An optional, secondary price to pay as well as the primary one. If not needed just use {@link Optional#empty()}.
|
||||
* @param sale The ItemStack which a player can purchase in exchange for the two prices.
|
||||
* @param maxTrades The amount of trades one villager or wanderer can do. When the amount is surpassed, the trade can't be purchased anymore.
|
||||
* @param experiencePoints How much experience points does the player get, when trading. Vanilla uses between 2 and 30 for this.
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"inject.MixinEntityType",
|
||||
"inject.MixinFluid",
|
||||
"inject.MixinFoodPropertiesBuilder",
|
||||
"inject.MixinGameEvent",
|
||||
"inject.MixinItem",
|
||||
"inject.MixinItemProperties",
|
||||
"inject.MixinLiquidBlock",
|
||||
|
||||
@@ -141,10 +141,7 @@ transitive-accessible class net/minecraft/world/item/CreativeModeTab$TabVisibili
|
||||
##############################
|
||||
|
||||
# Constructors of non-abstract item classes
|
||||
transitive-accessible method net/minecraft/world/item/AxeItem <init> (Lnet/minecraft/world/item/Tier;FFLnet/minecraft/world/item/Item$Properties;)V
|
||||
transitive-accessible method net/minecraft/world/item/DiggerItem <init> (FFLnet/minecraft/world/item/Tier;Lnet/minecraft/tags/TagKey;Lnet/minecraft/world/item/Item$Properties;)V
|
||||
transitive-accessible method net/minecraft/world/item/HoeItem <init> (Lnet/minecraft/world/item/Tier;IFLnet/minecraft/world/item/Item$Properties;)V
|
||||
transitive-accessible method net/minecraft/world/item/PickaxeItem <init> (Lnet/minecraft/world/item/Tier;IFLnet/minecraft/world/item/Item$Properties;)V
|
||||
transitive-accessible method net/minecraft/world/item/DiggerItem <init> (Lnet/minecraft/world/item/Tier;Lnet/minecraft/tags/TagKey;Lnet/minecraft/world/item/Item$Properties;)V
|
||||
transitive-accessible method net/minecraft/world/item/RecordItem <init> (ILnet/minecraft/sounds/SoundEvent;Lnet/minecraft/world/item/Item$Properties;I)V
|
||||
|
||||
# Constructors of non-abstract block classes
|
||||
@@ -304,6 +301,7 @@ transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDE
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_TRIPWIRE_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_END_PORTAL_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_END_GATEWAY_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_CLOUDS_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_LINES_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_GUI_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
transitive-accessible field net/minecraft/client/renderer/RenderStateShard RENDERTYPE_GUI_OVERLAY_SHADER Lnet/minecraft/client/renderer/RenderStateShard$ShaderStateShard;
|
||||
|
||||
@@ -19,9 +19,6 @@
|
||||
"net/minecraft/class_1755": [
|
||||
"dev/architectury/extensions/injected/InjectedBucketItemExtension"
|
||||
],
|
||||
"net/minecraft/class_5712": [
|
||||
"dev/architectury/extensions/injected/InjectedGameEventExtension"
|
||||
],
|
||||
"net/minecraft/class_4174$class_4175": [
|
||||
"dev/architectury/extensions/injected/InjectedFoodPropertiesBuilderExtension"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user