mirror of
https://github.com/Anuken/Mindustry.git
synced 2024-09-21 05:17:50 +03:00
Mod bugfixes
This commit is contained in:
parent
41ccda03a8
commit
ac20b17e0b
@ -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;
|
||||
|
@ -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){
|
||||
|
@ -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){
|
||||
|
@ -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){
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user