Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2026-02-04 14:13:45 -05:00
5 changed files with 36 additions and 14 deletions

View File

@@ -57,7 +57,7 @@ abstract class TankComp implements Posc, Hitboxc, Unitc, ElevationMovec{
lastDeepFloor = null;
boolean anyNonDeep = false;
if(type.crushFragile){
if(type.crushFragile && !disarmed){
for(int i = 0; i < 8; i++){
Point2 offset = Geometry.d8[i];
var other = Vars.world.buildWorld(x + offset.x * tilesize, y + offset.y * tilesize);

View File

@@ -1625,22 +1625,18 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
if(withText){
Font font = Fonts.outline;
font.setColor(col2);
var ints = font.usesIntegerPositions();
boolean ints = font.usesIntegerPositions();
font.setUseIntegerPositions(false);
var z = Draw.z();
float z = Draw.z();
Draw.z(Layer.endPixeled);
font.getData().setScale(1 / renderer.camerascale);
var snapToCursor = Core.settings.getBool("selectionsizeoncursor");
var textOffset = Core.settings.getInt("selectionsizeoncursoroffset", 5);
int width = (int)((result.x2 - result.x) / 8);
int height = (int)((result.y2 - result.y) / 8);
int area = width * height;
// FINISHME: When not snapping to cursor, perhaps it would be best to choose the corner closest to the cursor that's at least a block away?
font.draw(width + "x" + height + " (" + area + ")",
snapToCursor ? input.mouseWorldX() + textOffset * (4 / renderer.camerascale) : result.x2,
snapToCursor ? input.mouseWorldY() - textOffset * (4 / renderer.camerascale) : result.y
);
input.mouseWorldX() + 5 * (4 / renderer.camerascale),
input.mouseWorldY() - 5 * (4 / renderer.camerascale));
font.setColor(Color.white);
font.getData().setScale(1);
font.setUseIntegerPositions(ints);

View File

@@ -238,8 +238,7 @@ public class LStatements{
row(s);
s.add("align ");
fields(s, "align", p1, v -> p1 = v);
fields(s, "align", p1, v -> p1 = v).width(170f);
fieldAlignSelect(s, () -> p1, v -> {
p1 = v;
rebuild(table);

View File

@@ -699,7 +699,34 @@ public class ContentParser{
read(() -> readFields(liquid, value));
return liquid;
},
ContentType.status, parser(ContentType.status, StatusEffect::new),
ContentType.status, (TypeParser<StatusEffect>)(mod, name, value) -> {
StatusEffect status;
if(locate(ContentType.status, name) != null){
status = locate(ContentType.status, name);
readBundle(ContentType.status, name, value);
}else{
readBundle(ContentType.status, name, value);
status = new StatusEffect(mod + "-" + name);
}
currentContent = status;
read(() -> readFields(status, value));
status.init(() -> {
var oldOpposite = status.opposites.copy();
status.opposites.clear();
status.opposite(oldOpposite.toSeq().toArray(StatusEffect.class));
var oldAffinities = status.affinities.copy();
status.affinities.clear();
for(StatusEffect affinity: oldAffinities){
status.affinity(affinity, (unit, result, time) -> {
unit.damagePierce(status.transitionDamage);
});
}
});
return status;
},
ContentType.sector, (TypeParser<SectorPreset>)(mod, name, value) -> {
if(value.isString()){
return locate(ContentType.sector, name);

View File

@@ -176,13 +176,13 @@ public class StatusEffect extends UnlockableContent{
transitions.put(effect, handler);
}
protected void affinity(StatusEffect effect, TransitionHandler handler){
public void affinity(StatusEffect effect, TransitionHandler handler){
affinities.add(effect);
effect.affinities.add(this);
trans(effect, handler);
}
protected void opposite(StatusEffect... effect){
public void opposite(StatusEffect... effect){
for(var other : effect){
handleOpposite(other);
other.handleOpposite(this);