1
0
mirror of https://github.com/Anuken/Mindustry.git synced 2024-09-21 05:17:50 +03:00

Mod bugfixes

This commit is contained in:
Anuken 2021-06-03 13:58:56 -04:00
parent 41ccda03a8
commit ac20b17e0b
8 changed files with 49 additions and 3 deletions

View File

@ -15,7 +15,6 @@ import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.environment.*;
//just a proof of concept
@Component
abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
@Import float x, y, rotation;

View File

@ -26,6 +26,10 @@ public class MultiPacker implements Disposable{
return null;
}
public PixmapPacker getPacker(PageType type){
return packers[type.ordinal()];
}
public boolean has(String name){
for(var page : PageType.all){
if(packers[page.ordinal()].getRect(name) != null){

View File

@ -8,6 +8,7 @@ import mindustry.ctype.*;
import mindustry.game.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.meta.*;
import java.io.*;
@ -111,6 +112,18 @@ public class JsonIO{
}
});
json.setSerializer(Attribute.class, new Serializer<>(){
@Override
public void write(Json json, Attribute object, Class knownType){
json.writeValue(object.name);
}
@Override
public Attribute read(Json json, JsonValue jsonData, Class type){
return Attribute.get(jsonData.asString());
}
});
json.setSerializer(Item.class, new Serializer<>(){
@Override
public void write(Json json, Item object, Class knownType){

View File

@ -61,6 +61,7 @@ public class ContentParser{
});
put(Interp.class, (type, data) -> field(Interp.class, data));
put(CacheLayer.class, (type, data) -> field(CacheLayer.class, data));
put(Attribute.class, (type, data) -> Attribute.get(data.asString()));
put(Schematic.class, (type, data) -> {
Object result = fieldOpt(Loadouts.class, data);
if(result != null){

View File

@ -6,6 +6,7 @@ import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.units.*;
@ -183,5 +184,25 @@ public class Duct extends Block implements Autotiler{
next = front();
nextc = next instanceof DuctBuild d ? d : null;
}
@Override
public byte version(){
return 1;
}
@Override
public void write(Writes write){
super.write(write);
write.b(recDir);
}
@Override
public void read(Reads read, byte revision){
super.read(read, revision);
if(revision >= 1){
recDir = read.b();
}
current = items.first();
}
}
}

View File

@ -87,7 +87,7 @@ public class DuctRouter extends Block{
if(current == null) return null;
for(int i = -1; i <= 1; i++){
Building other = nearby(Mathf.mod(rotation + i + cdump, 4));
Building other = nearby(Mathf.mod(rotation + (((i + cdump + 1) % 3) - 1), 4));
if(other != null && other.team == team && other.acceptItem(this, current)){
return other;
}

View File

@ -1,9 +1,11 @@
package mindustry.world.meta;
import arc.struct.*;
import mindustry.*;
public class Attribute{
public static Attribute[] all = {};
public static ObjectMap<String, Attribute> map = new ObjectMap<>();
public static final Attribute
/** Heat content. Used for thermal generator yield. */
@ -36,6 +38,11 @@ public class Attribute{
return name;
}
/** Never returns null, may throw an exception if not found. */
public static Attribute get(String name){
return map.getThrow(name, () -> new IllegalArgumentException("Unknown Attribute type: " + name));
}
/** Automatically registers this attribute for use. Do not call after mod init. */
public static Attribute add(String name){
Attribute a = new Attribute(all.length, name);
@ -43,6 +50,7 @@ public class Attribute{
all = new Attribute[all.length + 1];
System.arraycopy(prev, 0, all, 0, a.id);
all[a.id] = a;
map.put(name, a);
return a;
}
}

View File

@ -9,4 +9,4 @@ kapt.use.worker.api=true
kapt.include.compile.classpath=false
# I don't need to use the kotlin stdlib yet, so remove it to prevent extra bloat & method count issues
kotlin.stdlib.default.dependency=false
archash=4afe8d1351e4b8dacd36a53e04fa8d75cda31ffc
archash=ef9b29a8978e8f5e2fcba770bfebd210f4bc8117