Better patcher multi-dimensional array support
This commit is contained in:
@@ -238,6 +238,13 @@ public class ContentPatcher{
|
|||||||
}, value, false);
|
}, value, false);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
if(metadata != null){
|
||||||
|
var meta = new FieldData(metadata.type.isArray() ? metadata.type.getComponentType() : metadata.elementType, null, null);
|
||||||
|
if(meta.type != null){
|
||||||
|
metadata = meta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int i = Strings.parseInt(field);
|
int i = Strings.parseInt(field);
|
||||||
int length = object instanceof Seq s ? s.size : Array.getLength(object);
|
int length = object instanceof Seq s ? s.size : Array.getLength(object);
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -26,4 +26,4 @@ org.gradle.caching=true
|
|||||||
org.gradle.internal.http.socketTimeout=100000
|
org.gradle.internal.http.socketTimeout=100000
|
||||||
org.gradle.internal.http.connectionTimeout=100000
|
org.gradle.internal.http.connectionTimeout=100000
|
||||||
android.enableR8.fullMode=false
|
android.enableR8.fullMode=false
|
||||||
archash=9087cfbb2b
|
archash=d677d2a72c
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class PatcherTests{
|
|||||||
@Test
|
@Test
|
||||||
void reconstructorPlans() throws Exception{
|
void reconstructorPlans() throws Exception{
|
||||||
var reconstructor = ((Reconstructor)Blocks.additiveReconstructor);
|
var reconstructor = ((Reconstructor)Blocks.additiveReconstructor);
|
||||||
var prev = reconstructor.upgrades;
|
var prev = reconstructor.upgrades.copy();
|
||||||
var prevConsumes = reconstructor.<ConsumeItems>findConsumer(c -> c instanceof ConsumeItems).items;
|
var prevConsumes = reconstructor.<ConsumeItems>findConsumer(c -> c instanceof ConsumeItems).items;
|
||||||
|
|
||||||
Vars.state.patcher.apply(Seq.with(
|
Vars.state.patcher.apply(Seq.with(
|
||||||
@@ -98,6 +98,46 @@ public class PatcherTests{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void reconstructorPlansEditSpecific() throws Exception{
|
||||||
|
var reconstructor = ((Reconstructor)Blocks.additiveReconstructor);
|
||||||
|
var prev = reconstructor.upgrades.copy();
|
||||||
|
|
||||||
|
Vars.state.patcher.apply(Seq.with(
|
||||||
|
"""
|
||||||
|
block.additive-reconstructor.upgrades.1: [dagger, flare]
|
||||||
|
"""
|
||||||
|
));
|
||||||
|
|
||||||
|
assertNoWarnings();
|
||||||
|
var plan = reconstructor.upgrades.get(1);
|
||||||
|
assertArrayEquals(new UnitType[]{UnitTypes.dagger, UnitTypes.flare}, plan);
|
||||||
|
|
||||||
|
resetAfter();
|
||||||
|
|
||||||
|
assertEquals(prev, reconstructor.upgrades);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void reconstructorPlansAdd() throws Exception{
|
||||||
|
var reconstructor = ((Reconstructor)Blocks.additiveReconstructor);
|
||||||
|
var prev = reconstructor.upgrades.copy();
|
||||||
|
|
||||||
|
Vars.state.patcher.apply(Seq.with(
|
||||||
|
"""
|
||||||
|
block.additive-reconstructor.upgrades.+: [[dagger, flare]]
|
||||||
|
"""
|
||||||
|
));
|
||||||
|
|
||||||
|
assertNoWarnings();
|
||||||
|
var plan = reconstructor.upgrades.peek();
|
||||||
|
assertArrayEquals(new UnitType[]{UnitTypes.dagger, UnitTypes.flare}, plan);
|
||||||
|
|
||||||
|
resetAfter();
|
||||||
|
|
||||||
|
assertEquals(prev, reconstructor.upgrades);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void unitWeapons() throws Exception{
|
void unitWeapons() throws Exception{
|
||||||
UnitTypes.dagger.checkStats();
|
UnitTypes.dagger.checkStats();
|
||||||
|
|||||||
Reference in New Issue
Block a user