mirror of
https://github.com/FabricMC/fabric.git
synced 2025-03-25 22:39:50 -04:00
Add many more transitive access wideners (#2341)
- `DamageSource` constructor and methods made accessible - supersedes #1085 - `SpawnRestriction` method `register` made accessible - allows `SpawnRestrictionAccessor` mixin to be removed - `TradeOffers` trade factory inner classes made accessible - `Material$Builder` methods made accessible (except `lightPassesThrough` method as that would break binary compat in `FabricMaterialBuilder` - Fixed `generateAccessWideners` task for TAWs module so it can now find the jar - `AxeItem`, `MusicDiscItem`, and `PickaxeItem` constructors made accessible - `ItemUsageContext` and `ItemPlacementContext` alternate constructors made accessible - allows passing a `null` PlayerEntity - `Factory` inner classes of both `CookingRecipeSerializer` and `CuttingRecipeSerializer` made accessible - `BrewingRecipeRegistry` methods `registerItemRecipe`, `registerPotionType`, and `registerPotionRecipe` made accessible - `ScoreboardCriterion` `create` methods made accessible - `ModelPart` inner classes `Vertex` and `Quad` made accessible - `RenderLayer` `of` method made accessible - `SensorType` and `Activity` constructors made accessible - `LivingEntity` methods `damageArmor`, `damageHelmet`, and `damageShield` made accessible - `ProjectileEntity` constructor made accessible - `FishingBobberEntity` alternate constructor made accessible - allows passing luck of the sea or lure levels for custom fishing bobbers - `ServerWorld` method `sendToPlayerIfNearby` made accessible - `TextColor` method `getHexCode` made accessible - `TranslatableTextContent` method `getArg` made accessible
This commit is contained in:
parent
b20e3339f9
commit
42d99c329d
6 changed files with 159 additions and 36 deletions
fabric-object-builder-api-v1/src/main
java/net/fabricmc/fabric
api/object/builder/v1/entity
mixin/object/builder
resources
fabric-transitive-access-wideners-v1
|
@ -34,7 +34,6 @@ import net.minecraft.world.Heightmap;
|
|||
import net.minecraft.world.World;
|
||||
|
||||
import net.fabricmc.fabric.impl.object.builder.FabricEntityType;
|
||||
import net.fabricmc.fabric.mixin.object.builder.SpawnRestrictionAccessor;
|
||||
|
||||
/**
|
||||
* Extended version of {@link EntityType.Builder} with added registration for
|
||||
|
@ -536,7 +535,7 @@ public class FabricEntityTypeBuilder<T extends Entity> {
|
|||
EntityType<T> type = super.build();
|
||||
|
||||
if (this.spawnPredicate != null) {
|
||||
SpawnRestrictionAccessor.callRegister(type, this.restrictionLocation, this.restrictionHeightmap, this.spawnPredicate);
|
||||
SpawnRestriction.register(type, this.restrictionLocation, this.restrictionHeightmap, this.spawnPredicate);
|
||||
}
|
||||
|
||||
return type;
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 2017, 2018, 2019 FabricMC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.fabricmc.fabric.mixin.object.builder;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.SpawnRestriction;
|
||||
import net.minecraft.entity.mob.MobEntity;
|
||||
import net.minecraft.world.Heightmap;
|
||||
|
||||
@Mixin(SpawnRestriction.class)
|
||||
public interface SpawnRestrictionAccessor {
|
||||
@Invoker
|
||||
static <T extends MobEntity> void callRegister(EntityType<T> type, SpawnRestriction.Location location, Heightmap.Type heightmap, SpawnRestriction.SpawnPredicate<T> spawnPredicate) {
|
||||
throw new AssertionError("This should not occur!");
|
||||
}
|
||||
}
|
|
@ -7,5 +7,7 @@ accessible method net/minecraft/world/poi/PointOfInterestTypes register
|
|||
|
||||
extendable class net/minecraft/block/entity/BlockEntityType$BlockEntityFactory
|
||||
|
||||
accessible method net/minecraft/entity/SpawnRestriction register (Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/SpawnRestriction$Location;Lnet/minecraft/world/Heightmap$Type;Lnet/minecraft/entity/SpawnRestriction$SpawnPredicate;)V
|
||||
|
||||
accessible field net/minecraft/village/VillagerType BIOME_TO_TYPE Ljava/util/Map;
|
||||
accessible method net/minecraft/village/VillagerType <init> (Ljava/lang/String;)V
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
"DefaultAttributeRegistryMixin",
|
||||
"DetectorRailBlockMixin",
|
||||
"MaterialBuilderAccessor",
|
||||
"SpawnRestrictionAccessor",
|
||||
"TypeAwareTradeMixin"
|
||||
],
|
||||
"injectors": {
|
||||
|
|
|
@ -24,6 +24,84 @@ transitive-accessible field net/minecraft/loot/LootPool bonusRolls Lnet/minecraf
|
|||
transitive-accessible field net/minecraft/loot/LootTable pools [Lnet/minecraft/loot/LootPool;
|
||||
transitive-accessible field net/minecraft/loot/LootTable functions [Lnet/minecraft/loot/function/LootFunction;
|
||||
|
||||
# Creating custom damage sources
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource <init> (Ljava/lang/String;)V
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setBypassesArmor ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setFallingBlock ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setOutOfWorld ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setUnblockable ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setBypassesProtection ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setFire ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
|
||||
# Villager trade factories
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$BuyForOneEmeraldFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellItemFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellSuspiciousStewFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$ProcessItemFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellEnchantedToolFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$TypeAwareBuyForOneEmeraldFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellPotionHoldingItemFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$EnchantBookFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellMapFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellDyedArmorFactory
|
||||
|
||||
# Registering custom entity spawn restrictions
|
||||
transitive-accessible method net/minecraft/entity/SpawnRestriction register (Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/SpawnRestriction$Location;Lnet/minecraft/world/Heightmap$Type;Lnet/minecraft/entity/SpawnRestriction$SpawnPredicate;)V
|
||||
|
||||
# Creating custom block materials
|
||||
transitive-accessible method net/minecraft/block/Material$Builder burnable ()Lnet/minecraft/block/Material$Builder;
|
||||
transitive-accessible method net/minecraft/block/Material$Builder destroyedByPiston ()Lnet/minecraft/block/Material$Builder;
|
||||
transitive-accessible method net/minecraft/block/Material$Builder blocksPistons ()Lnet/minecraft/block/Material$Builder;
|
||||
|
||||
# Item constructors
|
||||
transitive-accessible method net/minecraft/item/AxeItem <init> (Lnet/minecraft/item/ToolMaterial;FFLnet/minecraft/item/Item$Settings;)V
|
||||
transitive-accessible method net/minecraft/item/MusicDiscItem <init> (ILnet/minecraft/sound/SoundEvent;Lnet/minecraft/item/Item$Settings;I)V
|
||||
transitive-accessible method net/minecraft/item/PickaxeItem <init> (Lnet/minecraft/item/ToolMaterial;IFLnet/minecraft/item/Item$Settings;)V
|
||||
|
||||
# Item usage context constructors
|
||||
transitive-accessible method net/minecraft/item/ItemUsageContext <init> (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/hit/BlockHitResult;)V
|
||||
transitive-accessible method net/minecraft/item/ItemPlacementContext <init> (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/hit/BlockHitResult;)V
|
||||
|
||||
# Recipe factories
|
||||
transitive-accessible class net/minecraft/recipe/CookingRecipeSerializer$RecipeFactory
|
||||
transitive-accessible class net/minecraft/recipe/CuttingRecipe$Serializer$RecipeFactory
|
||||
|
||||
# Registering custom brewing recipes
|
||||
transitive-accessible method net/minecraft/recipe/BrewingRecipeRegistry registerItemRecipe (Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;)V
|
||||
transitive-accessible method net/minecraft/recipe/BrewingRecipeRegistry registerPotionType (Lnet/minecraft/item/Item;)V
|
||||
transitive-accessible method net/minecraft/recipe/BrewingRecipeRegistry registerPotionRecipe (Lnet/minecraft/potion/Potion;Lnet/minecraft/item/Item;Lnet/minecraft/potion/Potion;)V
|
||||
|
||||
# Registering custom scoreboard criteria
|
||||
transitive-accessible method net/minecraft/scoreboard/ScoreboardCriterion create (Ljava/lang/String;ZLnet/minecraft/scoreboard/ScoreboardCriterion$RenderType;)Lnet/minecraft/scoreboard/ScoreboardCriterion;
|
||||
transitive-accessible method net/minecraft/scoreboard/ScoreboardCriterion create (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScoreboardCriterion;
|
||||
|
||||
# Model part subclasses
|
||||
transitive-accessible class net/minecraft/client/model/ModelPart$Vertex
|
||||
transitive-accessible class net/minecraft/client/model/ModelPart$Quad
|
||||
|
||||
# Creating custom render layers
|
||||
transitive-accessible method net/minecraft/client/render/RenderLayer of (Lnet/minecraft/client/render/RenderPhase$Shader;)Lnet/minecraft/client/render/RenderLayer$MultiPhaseParameters;
|
||||
|
||||
# Creating custom sensor types
|
||||
transitive-accessible method net/minecraft/entity/ai/brain/sensor/SensorType <init> (Ljava/util/function/Supplier;)V
|
||||
|
||||
# Creating custom activities
|
||||
transitive-accessible method net/minecraft/entity/ai/brain/Activity <init> (Ljava/lang/String;)V
|
||||
|
||||
# Living entity methods
|
||||
transitive-accessible method net/minecraft/entity/LivingEntity damageArmor (Lnet/minecraft/entity/damage/DamageSource;F)V
|
||||
transitive-accessible method net/minecraft/entity/LivingEntity damageHelmet (Lnet/minecraft/entity/damage/DamageSource;F)V
|
||||
transitive-accessible method net/minecraft/entity/LivingEntity damageShield (F)V
|
||||
|
||||
# Entity constructors
|
||||
transitive-accessible method net/minecraft/entity/projectile/ProjectileEntity <init> (Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;)V
|
||||
transitive-accessible method net/minecraft/entity/projectile/FishingBobberEntity <init> (Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;II)V
|
||||
|
||||
# Miscellaneous other methods
|
||||
transitive-accessible method net/minecraft/server/world/ServerWorld sendToPlayerIfNearby (Lnet/minecraft/server/network/ServerPlayerEntity;ZDDDLnet/minecraft/network/Packet;)Z
|
||||
transitive-accessible method net/minecraft/text/TextColor getHexCode ()Ljava/lang/String;
|
||||
transitive-accessible method net/minecraft/text/TranslatableTextContent getArg (I)Lnet/minecraft/text/StringVisitable;
|
||||
|
||||
# Creating block entity types
|
||||
transitive-extendable class net/minecraft/block/entity/BlockEntityType$BlockEntityFactory
|
||||
|
||||
|
|
|
@ -24,6 +24,84 @@ transitive-accessible field net/minecraft/loot/LootPool bonusRolls Lnet/minecraf
|
|||
transitive-accessible field net/minecraft/loot/LootTable pools [Lnet/minecraft/loot/LootPool;
|
||||
transitive-accessible field net/minecraft/loot/LootTable functions [Lnet/minecraft/loot/function/LootFunction;
|
||||
|
||||
# Creating custom damage sources
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource <init> (Ljava/lang/String;)V
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setBypassesArmor ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setFallingBlock ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setOutOfWorld ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setUnblockable ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setBypassesProtection ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
transitive-accessible method net/minecraft/entity/damage/DamageSource setFire ()Lnet/minecraft/entity/damage/DamageSource;
|
||||
|
||||
# Villager trade factories
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$BuyForOneEmeraldFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellItemFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellSuspiciousStewFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$ProcessItemFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellEnchantedToolFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$TypeAwareBuyForOneEmeraldFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellPotionHoldingItemFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$EnchantBookFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellMapFactory
|
||||
transitive-accessible class net/minecraft/village/TradeOffers$SellDyedArmorFactory
|
||||
|
||||
# Registering custom entity spawn restrictions
|
||||
transitive-accessible method net/minecraft/entity/SpawnRestriction register (Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/SpawnRestriction$Location;Lnet/minecraft/world/Heightmap$Type;Lnet/minecraft/entity/SpawnRestriction$SpawnPredicate;)V
|
||||
|
||||
# Creating custom block materials
|
||||
transitive-accessible method net/minecraft/block/Material$Builder burnable ()Lnet/minecraft/block/Material$Builder;
|
||||
transitive-accessible method net/minecraft/block/Material$Builder destroyedByPiston ()Lnet/minecraft/block/Material$Builder;
|
||||
transitive-accessible method net/minecraft/block/Material$Builder blocksPistons ()Lnet/minecraft/block/Material$Builder;
|
||||
|
||||
# Item constructors
|
||||
transitive-accessible method net/minecraft/item/AxeItem <init> (Lnet/minecraft/item/ToolMaterial;FFLnet/minecraft/item/Item$Settings;)V
|
||||
transitive-accessible method net/minecraft/item/MusicDiscItem <init> (ILnet/minecraft/sound/SoundEvent;Lnet/minecraft/item/Item$Settings;I)V
|
||||
transitive-accessible method net/minecraft/item/PickaxeItem <init> (Lnet/minecraft/item/ToolMaterial;IFLnet/minecraft/item/Item$Settings;)V
|
||||
|
||||
# Item usage context constructors
|
||||
transitive-accessible method net/minecraft/item/ItemUsageContext <init> (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/hit/BlockHitResult;)V
|
||||
transitive-accessible method net/minecraft/item/ItemPlacementContext <init> (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/hit/BlockHitResult;)V
|
||||
|
||||
# Recipe factories
|
||||
transitive-accessible class net/minecraft/recipe/CookingRecipeSerializer$RecipeFactory
|
||||
transitive-accessible class net/minecraft/recipe/CuttingRecipe$Serializer$RecipeFactory
|
||||
|
||||
# Registering custom brewing recipes
|
||||
transitive-accessible method net/minecraft/recipe/BrewingRecipeRegistry registerItemRecipe (Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;)V
|
||||
transitive-accessible method net/minecraft/recipe/BrewingRecipeRegistry registerPotionType (Lnet/minecraft/item/Item;)V
|
||||
transitive-accessible method net/minecraft/recipe/BrewingRecipeRegistry registerPotionRecipe (Lnet/minecraft/potion/Potion;Lnet/minecraft/item/Item;Lnet/minecraft/potion/Potion;)V
|
||||
|
||||
# Registering custom scoreboard criteria
|
||||
transitive-accessible method net/minecraft/scoreboard/ScoreboardCriterion create (Ljava/lang/String;ZLnet/minecraft/scoreboard/ScoreboardCriterion$RenderType;)Lnet/minecraft/scoreboard/ScoreboardCriterion;
|
||||
transitive-accessible method net/minecraft/scoreboard/ScoreboardCriterion create (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScoreboardCriterion;
|
||||
|
||||
# Model part subclasses
|
||||
transitive-accessible class net/minecraft/client/model/ModelPart$Vertex
|
||||
transitive-accessible class net/minecraft/client/model/ModelPart$Quad
|
||||
|
||||
# Creating custom render layers
|
||||
transitive-accessible method net/minecraft/client/render/RenderLayer of (Lnet/minecraft/client/render/RenderPhase$Shader;)Lnet/minecraft/client/render/RenderLayer$MultiPhaseParameters;
|
||||
|
||||
# Creating custom sensor types
|
||||
transitive-accessible method net/minecraft/entity/ai/brain/sensor/SensorType <init> (Ljava/util/function/Supplier;)V
|
||||
|
||||
# Creating custom activities
|
||||
transitive-accessible method net/minecraft/entity/ai/brain/Activity <init> (Ljava/lang/String;)V
|
||||
|
||||
# Living entity methods
|
||||
transitive-accessible method net/minecraft/entity/LivingEntity damageArmor (Lnet/minecraft/entity/damage/DamageSource;F)V
|
||||
transitive-accessible method net/minecraft/entity/LivingEntity damageHelmet (Lnet/minecraft/entity/damage/DamageSource;F)V
|
||||
transitive-accessible method net/minecraft/entity/LivingEntity damageShield (F)V
|
||||
|
||||
# Entity constructors
|
||||
transitive-accessible method net/minecraft/entity/projectile/ProjectileEntity <init> (Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;)V
|
||||
transitive-accessible method net/minecraft/entity/projectile/FishingBobberEntity <init> (Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;II)V
|
||||
|
||||
# Miscellaneous other methods
|
||||
transitive-accessible method net/minecraft/server/world/ServerWorld sendToPlayerIfNearby (Lnet/minecraft/server/network/ServerPlayerEntity;ZDDDLnet/minecraft/network/Packet;)Z
|
||||
transitive-accessible method net/minecraft/text/TextColor getHexCode ()Ljava/lang/String;
|
||||
transitive-accessible method net/minecraft/text/TranslatableTextContent getArg (I)Lnet/minecraft/text/StringVisitable;
|
||||
|
||||
# Creating block entity types
|
||||
transitive-extendable class net/minecraft/block/entity/BlockEntityType$BlockEntityFactory
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue