Mod bugfixes
This commit is contained in:
@@ -15,7 +15,6 @@ import mindustry.type.*;
|
|||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import mindustry.world.blocks.environment.*;
|
import mindustry.world.blocks.environment.*;
|
||||||
|
|
||||||
//just a proof of concept
|
|
||||||
@Component
|
@Component
|
||||||
abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
|
abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
|
||||||
@Import float x, y, rotation;
|
@Import float x, y, rotation;
|
||||||
|
|||||||
@@ -26,6 +26,10 @@ public class MultiPacker implements Disposable{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PixmapPacker getPacker(PageType type){
|
||||||
|
return packers[type.ordinal()];
|
||||||
|
}
|
||||||
|
|
||||||
public boolean has(String name){
|
public boolean has(String name){
|
||||||
for(var page : PageType.all){
|
for(var page : PageType.all){
|
||||||
if(packers[page.ordinal()].getRect(name) != null){
|
if(packers[page.ordinal()].getRect(name) != null){
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import mindustry.ctype.*;
|
|||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
import java.io.*;
|
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<>(){
|
json.setSerializer(Item.class, new Serializer<>(){
|
||||||
@Override
|
@Override
|
||||||
public void write(Json json, Item object, Class knownType){
|
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(Interp.class, (type, data) -> field(Interp.class, data));
|
||||||
put(CacheLayer.class, (type, data) -> field(CacheLayer.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) -> {
|
put(Schematic.class, (type, data) -> {
|
||||||
Object result = fieldOpt(Loadouts.class, data);
|
Object result = fieldOpt(Loadouts.class, data);
|
||||||
if(result != null){
|
if(result != null){
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import arc.math.*;
|
|||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
|
import arc.util.io.*;
|
||||||
import mindustry.annotations.Annotations.*;
|
import mindustry.annotations.Annotations.*;
|
||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import mindustry.entities.units.*;
|
import mindustry.entities.units.*;
|
||||||
@@ -183,5 +184,25 @@ public class Duct extends Block implements Autotiler{
|
|||||||
next = front();
|
next = front();
|
||||||
nextc = next instanceof DuctBuild d ? d : null;
|
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;
|
if(current == null) return null;
|
||||||
|
|
||||||
for(int i = -1; i <= 1; i++){
|
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)){
|
if(other != null && other.team == team && other.acceptItem(this, current)){
|
||||||
return other;
|
return other;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package mindustry.world.meta;
|
package mindustry.world.meta;
|
||||||
|
|
||||||
|
import arc.struct.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
|
|
||||||
public class Attribute{
|
public class Attribute{
|
||||||
public static Attribute[] all = {};
|
public static Attribute[] all = {};
|
||||||
|
public static ObjectMap<String, Attribute> map = new ObjectMap<>();
|
||||||
|
|
||||||
public static final Attribute
|
public static final Attribute
|
||||||
/** Heat content. Used for thermal generator yield. */
|
/** Heat content. Used for thermal generator yield. */
|
||||||
@@ -36,6 +38,11 @@ public class Attribute{
|
|||||||
return name;
|
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. */
|
/** Automatically registers this attribute for use. Do not call after mod init. */
|
||||||
public static Attribute add(String name){
|
public static Attribute add(String name){
|
||||||
Attribute a = new Attribute(all.length, name);
|
Attribute a = new Attribute(all.length, name);
|
||||||
@@ -43,6 +50,7 @@ public class Attribute{
|
|||||||
all = new Attribute[all.length + 1];
|
all = new Attribute[all.length + 1];
|
||||||
System.arraycopy(prev, 0, all, 0, a.id);
|
System.arraycopy(prev, 0, all, 0, a.id);
|
||||||
all[a.id] = a;
|
all[a.id] = a;
|
||||||
|
map.put(name, a);
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ kapt.use.worker.api=true
|
|||||||
kapt.include.compile.classpath=false
|
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
|
# 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
|
kotlin.stdlib.default.dependency=false
|
||||||
archash=4afe8d1351e4b8dacd36a53e04fa8d75cda31ffc
|
archash=ef9b29a8978e8f5e2fcba770bfebd210f4bc8117
|
||||||
|
|||||||
Reference in New Issue
Block a user