DripParticle.java
net.minecraft.client.particle.DripParticle
信息
- 全限定名:net.minecraft.client.particle.DripParticle
- 类型:public class
- 包:net.minecraft.client.particle
- 源码路径:src/main/java/net/minecraft/client/particle/DripParticle.java
- 起始行号:L22
- 继承:SingleQuadParticle
- 职责:
TODO
字段/常量
-
type- 类型:
Fluid - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
isGlowing- 类型:
boolean - 修饰符:
protected - 源码定位:
L24 - 说明:
TODO
- 类型:
内部类/嵌套类型
-
net.minecraft.client.particle.DripParticle.CoolingDripHangParticle- 类型:
class - 修饰符:
private static - 源码定位:
L82 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripHangParticle- 类型:
class - 修饰符:
private static - 源码定位:
L97 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripLandParticle- 类型:
class - 修饰符:
private static - 源码定位:
L124 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripstoneFallAndLandParticle- 类型:
class - 修饰符:
private static - 源码定位:
L132 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripstoneLavaFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L152 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripstoneLavaHangProvider- 类型:
class - 修饰符:
public static - 源码定位:
L171 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripstoneWaterFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L186 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.DripstoneWaterHangProvider- 类型:
class - 修饰符:
public static - 源码定位:
L203 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.FallAndLandParticle- 类型:
class - 修饰符:
private static - 源码定位:
L222 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.FallingParticle- 类型:
class - 修饰符:
private static - 源码定位:
L241 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.HoneyFallAndLandParticle- 类型:
class - 修饰符:
private static - 源码定位:
L255 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.HoneyFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L272 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.HoneyHangProvider- 类型:
class - 修饰符:
public static - 源码定位:
L292 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.HoneyLandProvider- 类型:
class - 修饰符:
public static - 源码定位:
L313 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.LavaFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L331 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.LavaHangProvider- 类型:
class - 修饰符:
public static - 源码定位:
L348 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.LavaLandProvider- 类型:
class - 修饰符:
public static - 源码定位:
L363 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.NectarFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L380 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.ObsidianTearFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L399 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.ObsidianTearHangProvider- 类型:
class - 修饰符:
public static - 源码定位:
L420 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.ObsidianTearLandProvider- 类型:
class - 修饰符:
public static - 源码定位:
L442 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.SporeBlossomFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L461 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.WaterFallProvider- 类型:
class - 修饰符:
public static - 源码定位:
L480 - 说明:
TODO
- 类型:
-
net.minecraft.client.particle.DripParticle.WaterHangProvider- 类型:
class - 修饰符:
public static - 源码定位:
L497 - 说明:
TODO
- 类型:
构造器
private DripParticle(ClientLevel level, double x, double y, double z, Fluid type, TextureAtlasSprite sprite) @ L26
- 构造器名:DripParticle
- 源码定位:L26
- 修饰符:private
参数:
- level: ClientLevel
- x: double
- y: double
- z: double
- type: Fluid
- sprite: TextureAtlasSprite
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected Fluid getType() @ L33
- 方法名:getType
- 源码定位:L33
- 返回类型:Fluid
- 修饰符:protected
参数:
- 无
说明:
TODO
public SingleQuadParticle.Layer getLayer() @ L37
- 方法名:getLayer
- 源码定位:L37
- 返回类型:SingleQuadParticle.Layer
- 修饰符:public
参数:
- 无
说明:
TODO
public int getLightCoords(float a) @ L42
- 方法名:getLightCoords
- 源码定位:L42
- 返回类型:int
- 修饰符:public
参数:
- a: float
说明:
TODO
public void tick() @ L47
- 方法名:tick
- 源码定位:L47
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
protected void preMoveUpdate() @ L72
- 方法名:preMoveUpdate
- 源码定位:L72
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
protected void postMoveUpdate() @ L78
- 方法名:postMoveUpdate
- 源码定位:L78
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class DripParticle extends SingleQuadParticle {
private final Fluid type;
protected boolean isGlowing;
private DripParticle(ClientLevel level, double x, double y, double z, Fluid type, TextureAtlasSprite sprite) {
super(level, x, y, z, sprite);
this.setSize(0.01F, 0.01F);
this.gravity = 0.06F;
this.type = type;
}
protected Fluid getType() {
return this.type;
}
@Override
public SingleQuadParticle.Layer getLayer() {
return SingleQuadParticle.Layer.OPAQUE;
}
@Override
public int getLightCoords(float a) {
return this.isGlowing ? LightCoordsUtil.withBlock(super.getLightCoords(a), 15) : super.getLightCoords(a);
}
@Override
public void tick() {
this.xo = this.x;
this.yo = this.y;
this.zo = this.z;
this.preMoveUpdate();
if (!this.removed) {
this.yd = this.yd - this.gravity;
this.move(this.xd, this.yd, this.zd);
this.postMoveUpdate();
if (!this.removed) {
this.xd *= 0.98F;
this.yd *= 0.98F;
this.zd *= 0.98F;
if (this.type != Fluids.EMPTY) {
BlockPos pos = BlockPos.containing(this.x, this.y, this.z);
FluidState fluidState = this.level.getFluidState(pos);
if (fluidState.is(this.type) && this.y < pos.getY() + fluidState.getHeight(this.level, pos)) {
this.remove();
}
}
}
}
}
protected void preMoveUpdate() {
if (this.lifetime-- <= 0) {
this.remove();
}
}
protected void postMoveUpdate() {
}
@OnlyIn(Dist.CLIENT)
private static class CoolingDripHangParticle extends DripParticle.DripHangParticle {
private CoolingDripHangParticle(ClientLevel level, double x, double y, double z, Fluid type, ParticleOptions fallingParticle, TextureAtlasSprite sprite) {
super(level, x, y, z, type, fallingParticle, sprite);
}
@Override
protected void preMoveUpdate() {
this.rCol = 1.0F;
this.gCol = 16.0F / (40 - this.lifetime + 16);
this.bCol = 4.0F / (40 - this.lifetime + 8);
super.preMoveUpdate();
}
}
@OnlyIn(Dist.CLIENT)
private static class DripHangParticle extends DripParticle {
private final ParticleOptions fallingParticle;
private DripHangParticle(ClientLevel level, double x, double y, double z, Fluid type, ParticleOptions fallingParticle, TextureAtlasSprite sprite) {
super(level, x, y, z, type, sprite);
this.fallingParticle = fallingParticle;
this.gravity *= 0.02F;
this.lifetime = 40;
}
@Override
protected void preMoveUpdate() {
if (this.lifetime-- <= 0) {
this.remove();
this.level.addParticle(this.fallingParticle, this.x, this.y, this.z, this.xd, this.yd, this.zd);
}
}
@Override
protected void postMoveUpdate() {
this.xd *= 0.02;
this.yd *= 0.02;
this.zd *= 0.02;
}
}
@OnlyIn(Dist.CLIENT)
private static class DripLandParticle extends DripParticle {
private DripLandParticle(ClientLevel level, double x, double y, double z, Fluid type, TextureAtlasSprite sprite) {
super(level, x, y, z, type, sprite);
this.lifetime = (int)(16.0 / (this.random.nextFloat() * 0.8 + 0.2));
}
}
@OnlyIn(Dist.CLIENT)
private static class DripstoneFallAndLandParticle extends DripParticle.FallAndLandParticle {
private DripstoneFallAndLandParticle(
ClientLevel level, double x, double y, double z, Fluid type, ParticleOptions landParticle, TextureAtlasSprite sprite
) {
super(level, x, y, z, type, landParticle, sprite);
}
@Override
protected void postMoveUpdate() {
if (this.onGround) {
this.remove();
this.level.addParticle(this.landParticle, this.x, this.y, this.z, 0.0, 0.0, 0.0);
SoundEvent sound = this.getType() == Fluids.LAVA ? SoundEvents.POINTED_DRIPSTONE_DRIP_LAVA : SoundEvents.POINTED_DRIPSTONE_DRIP_WATER;
float volume = Mth.randomBetween(this.random, 0.3F, 1.0F);
this.level.playLocalSound(this.x, this.y, this.z, sound, SoundSource.BLOCKS, volume, 1.0F, false);
}
}
}
@OnlyIn(Dist.CLIENT)
public static class DripstoneLavaFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public DripstoneLavaFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripstoneFallAndLandParticle(
level, x, y, z, Fluids.LAVA, ParticleTypes.LANDING_LAVA, this.sprite.get(random)
);
particle.setColor(1.0F, 0.2857143F, 0.083333336F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class DripstoneLavaHangProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public DripstoneLavaHangProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
return new DripParticle.CoolingDripHangParticle(level, x, y, z, Fluids.LAVA, ParticleTypes.FALLING_DRIPSTONE_LAVA, this.sprite.get(random));
}
}
@OnlyIn(Dist.CLIENT)
public static class DripstoneWaterFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public DripstoneWaterFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripstoneFallAndLandParticle(level, x, y, z, Fluids.WATER, ParticleTypes.SPLASH, this.sprite.get(random));
particle.setColor(0.2F, 0.3F, 1.0F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class DripstoneWaterHangProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public DripstoneWaterHangProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripHangParticle(
level, x, y, z, Fluids.WATER, ParticleTypes.FALLING_DRIPSTONE_WATER, this.sprite.get(random)
);
particle.setColor(0.2F, 0.3F, 1.0F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
private static class FallAndLandParticle extends DripParticle.FallingParticle {
protected final ParticleOptions landParticle;
private FallAndLandParticle(ClientLevel level, double x, double y, double z, Fluid type, ParticleOptions landParticle, TextureAtlasSprite sprite) {
super(level, x, y, z, type, sprite);
this.lifetime = (int)(64.0 / (this.random.nextFloat() * 0.8 + 0.2));
this.landParticle = landParticle;
}
@Override
protected void postMoveUpdate() {
if (this.onGround) {
this.remove();
this.level.addParticle(this.landParticle, this.x, this.y, this.z, 0.0, 0.0, 0.0);
}
}
}
@OnlyIn(Dist.CLIENT)
private static class FallingParticle extends DripParticle {
private FallingParticle(ClientLevel level, double x, double y, double z, Fluid type, TextureAtlasSprite sprite) {
super(level, x, y, z, type, sprite);
}
@Override
protected void postMoveUpdate() {
if (this.onGround) {
this.remove();
}
}
}
@OnlyIn(Dist.CLIENT)
private static class HoneyFallAndLandParticle extends DripParticle.FallAndLandParticle {
private HoneyFallAndLandParticle(ClientLevel level, double x, double y, double z, Fluid type, ParticleOptions landParticle, TextureAtlasSprite sprite) {
super(level, x, y, z, type, landParticle, sprite);
}
@Override
protected void postMoveUpdate() {
if (this.onGround) {
this.remove();
this.level.addParticle(this.landParticle, this.x, this.y, this.z, 0.0, 0.0, 0.0);
float volume = Mth.randomBetween(this.random, 0.3F, 1.0F);
this.level.playLocalSound(this.x, this.y, this.z, SoundEvents.BEEHIVE_DRIP, SoundSource.BLOCKS, volume, 1.0F, false);
}
}
}
@OnlyIn(Dist.CLIENT)
public static class HoneyFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public HoneyFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.HoneyFallAndLandParticle(
level, x, y, z, Fluids.EMPTY, ParticleTypes.LANDING_HONEY, this.sprite.get(random)
);
particle.gravity = 0.01F;
particle.setColor(0.582F, 0.448F, 0.082F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class HoneyHangProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public HoneyHangProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle.DripHangParticle particle = new DripParticle.DripHangParticle(
level, x, y, z, Fluids.EMPTY, ParticleTypes.FALLING_HONEY, this.sprite.get(random)
);
particle.gravity *= 0.01F;
particle.lifetime = 100;
particle.setColor(0.622F, 0.508F, 0.082F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class HoneyLandProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public HoneyLandProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripLandParticle(level, x, y, z, Fluids.EMPTY, this.sprite.get(random));
particle.lifetime = (int)(128.0 / (random.nextFloat() * 0.8 + 0.2));
particle.setColor(0.522F, 0.408F, 0.082F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class LavaFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public LavaFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.FallAndLandParticle(level, x, y, z, Fluids.LAVA, ParticleTypes.LANDING_LAVA, this.sprite.get(random));
particle.setColor(1.0F, 0.2857143F, 0.083333336F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class LavaHangProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public LavaHangProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
return new DripParticle.CoolingDripHangParticle(level, x, y, z, Fluids.LAVA, ParticleTypes.FALLING_LAVA, this.sprite.get(random));
}
}
@OnlyIn(Dist.CLIENT)
public static class LavaLandProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public LavaLandProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripLandParticle(level, x, y, z, Fluids.LAVA, this.sprite.get(random));
particle.setColor(1.0F, 0.2857143F, 0.083333336F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class NectarFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public NectarFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.FallingParticle(level, x, y, z, Fluids.EMPTY, this.sprite.get(random));
particle.lifetime = (int)(16.0 / (random.nextFloat() * 0.8 + 0.2));
particle.gravity = 0.007F;
particle.setColor(0.92F, 0.782F, 0.72F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class ObsidianTearFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public ObsidianTearFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.FallAndLandParticle(
level, x, y, z, Fluids.EMPTY, ParticleTypes.LANDING_OBSIDIAN_TEAR, this.sprite.get(random)
);
particle.isGlowing = true;
particle.gravity = 0.01F;
particle.setColor(0.51171875F, 0.03125F, 0.890625F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class ObsidianTearHangProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public ObsidianTearHangProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle.DripHangParticle particle = new DripParticle.DripHangParticle(
level, x, y, z, Fluids.EMPTY, ParticleTypes.FALLING_OBSIDIAN_TEAR, this.sprite.get(random)
);
particle.isGlowing = true;
particle.gravity *= 0.01F;
particle.lifetime = 100;
particle.setColor(0.51171875F, 0.03125F, 0.890625F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class ObsidianTearLandProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public ObsidianTearLandProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripLandParticle(level, x, y, z, Fluids.EMPTY, this.sprite.get(random));
particle.isGlowing = true;
particle.lifetime = (int)(28.0 / (random.nextFloat() * 0.8 + 0.2));
particle.setColor(0.51171875F, 0.03125F, 0.890625F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class SporeBlossomFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public SporeBlossomFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.FallingParticle(level, x, y, z, Fluids.EMPTY, this.sprite.get(random));
particle.lifetime = (int)(64.0F / Mth.randomBetween(particle.random, 0.1F, 0.9F));
particle.gravity = 0.005F;
particle.setColor(0.32F, 0.5F, 0.22F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class WaterFallProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public WaterFallProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.FallAndLandParticle(level, x, y, z, Fluids.WATER, ParticleTypes.SPLASH, this.sprite.get(random));
particle.setColor(0.2F, 0.3F, 1.0F);
return particle;
}
}
@OnlyIn(Dist.CLIENT)
public static class WaterHangProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprite;
public WaterHangProvider(SpriteSet sprite) {
this.sprite = sprite;
}
public Particle createParticle(
SimpleParticleType options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
DripParticle particle = new DripParticle.DripHangParticle(level, x, y, z, Fluids.WATER, ParticleTypes.FALLING_WATER, this.sprite.get(random));
particle.setColor(0.2F, 0.3F, 1.0F);
return particle;
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BlockPos.containing()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
LightCoordsUtil.withBlock()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.randomBetween()
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置: