修复部分移植问题
This commit is contained in:
parent
ddf9bc1e2c
commit
d9ed8195b1
7 changed files with 27 additions and 6 deletions
|
@ -725,4 +725,9 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity {
|
||||||
public boolean canCrushEntities() {
|
public boolean canCrushEntities() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasEnergyStorage() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,4 +204,9 @@ public class Type63Entity extends MobileVehicleEntity implements GeoEntity, OBBE
|
||||||
public void updateOBB() {
|
public void updateOBB() {
|
||||||
Matrix4f transform = getVehicleTransform(1);
|
Matrix4f transform = getVehicleTransform(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasEnergyStorage() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,4 +79,8 @@ public abstract class EnergyVehicleEntity extends VehicleEntity {
|
||||||
return data().maxEnergy();
|
return data().maxEnergy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 屎
|
||||||
|
public boolean hasEnergyStorage() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ public class ModCapabilities {
|
||||||
if (entity.get().getBaseClass().isAssignableFrom(EnergyVehicleEntity.class)) {
|
if (entity.get().getBaseClass().isAssignableFrom(EnergyVehicleEntity.class)) {
|
||||||
event.registerEntity(Capabilities.EnergyStorage.ENTITY,
|
event.registerEntity(Capabilities.EnergyStorage.ENTITY,
|
||||||
entity.get(),
|
entity.get(),
|
||||||
(obj, ctx) -> (obj instanceof EnergyVehicleEntity vehicle) ? vehicle.getEnergyStorage() : null
|
(obj, ctx) -> (obj instanceof EnergyVehicleEntity vehicle && vehicle.hasEnergyStorage()) ? vehicle.getEnergyStorage() : null
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,8 +83,9 @@ public class FuMO25Menu extends EnergyMenu {
|
||||||
|
|
||||||
var parameters = stack.get(ModDataComponents.FIRING_PARAMETERS);
|
var parameters = stack.get(ModDataComponents.FIRING_PARAMETERS);
|
||||||
var isDepressed = parameters != null && parameters.isDepressed();
|
var isDepressed = parameters != null && parameters.isDepressed();
|
||||||
|
var radius = parameters != null ? parameters.radius() : 0;
|
||||||
|
|
||||||
stack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(new BlockPos(this.posX, this.posY, this.posZ), isDepressed));
|
stack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(new BlockPos(this.posX, this.posY, this.posZ), radius, isDepressed));
|
||||||
|
|
||||||
this.resetPos();
|
this.resetPos();
|
||||||
this.container.setChanged();
|
this.container.setChanged();
|
||||||
|
|
|
@ -46,11 +46,13 @@ public record DroneFireMessage(Vector3f pos) implements CustomPacketPayload {
|
||||||
|
|
||||||
var parameters = offStack.get(ModDataComponents.FIRING_PARAMETERS);
|
var parameters = offStack.get(ModDataComponents.FIRING_PARAMETERS);
|
||||||
var isDepressed = false;
|
var isDepressed = false;
|
||||||
|
var radius = 0;
|
||||||
if (parameters != null) {
|
if (parameters != null) {
|
||||||
isDepressed = parameters.isDepressed();
|
isDepressed = parameters.isDepressed();
|
||||||
|
radius = parameters.radius();
|
||||||
}
|
}
|
||||||
|
|
||||||
offStack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(new BlockPos((int) message.pos.x, (int) message.pos.y, (int) message.pos.z), isDepressed));
|
offStack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(new BlockPos((int) message.pos.x, (int) message.pos.y, (int) message.pos.z), radius, isDepressed));
|
||||||
|
|
||||||
player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.target_pos").withStyle(ChatFormatting.GRAY)
|
player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.target_pos").withStyle(ChatFormatting.GRAY)
|
||||||
.append(Component.literal("[" + message.pos.x()
|
.append(Component.literal("[" + message.pos.x()
|
||||||
|
|
|
@ -49,11 +49,12 @@ public enum SetFiringParametersMessage implements CustomPacketPayload {
|
||||||
|
|
||||||
var parameters = stack.get(ModDataComponents.FIRING_PARAMETERS);
|
var parameters = stack.get(ModDataComponents.FIRING_PARAMETERS);
|
||||||
var isDepressed = parameters != null && parameters.isDepressed();
|
var isDepressed = parameters != null && parameters.isDepressed();
|
||||||
|
var radius = parameters != null ? parameters.radius() : 0;
|
||||||
|
|
||||||
if (lookAtEntity) {
|
if (lookAtEntity) {
|
||||||
stack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(lookingEntity.blockPosition(), isDepressed));
|
stack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(lookingEntity.blockPosition(), radius, isDepressed));
|
||||||
} else {
|
} else {
|
||||||
stack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(new BlockPos((int) hitPos.x, (int) hitPos.y, (int) hitPos.z), isDepressed));
|
stack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(new BlockPos((int) hitPos.x, (int) hitPos.y, (int) hitPos.z), radius, isDepressed));
|
||||||
}
|
}
|
||||||
|
|
||||||
var pos = Objects.requireNonNull(stack.get(ModDataComponents.FIRING_PARAMETERS)).pos();
|
var pos = Objects.requireNonNull(stack.get(ModDataComponents.FIRING_PARAMETERS)).pos();
|
||||||
|
@ -73,7 +74,10 @@ public enum SetFiringParametersMessage implements CustomPacketPayload {
|
||||||
} else {
|
} else {
|
||||||
pos = new BlockPos((int) hitPos.x, (int) hitPos.y, (int) hitPos.z);
|
pos = new BlockPos((int) hitPos.x, (int) hitPos.y, (int) hitPos.z);
|
||||||
}
|
}
|
||||||
mainStack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(pos, false));
|
var parameters = mainStack.get(ModDataComponents.FIRING_PARAMETERS);
|
||||||
|
var isDepressed = parameters != null && parameters.isDepressed();
|
||||||
|
var radius = parameters != null ? parameters.radius() : 0;
|
||||||
|
mainStack.set(ModDataComponents.FIRING_PARAMETERS, new FiringParameters.Parameters(pos, radius, isDepressed));
|
||||||
|
|
||||||
player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.target_pos")
|
player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.target_pos")
|
||||||
.withStyle(ChatFormatting.GRAY)
|
.withStyle(ChatFormatting.GRAY)
|
||||||
|
|
Loading…
Add table
Reference in a new issue