diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 8dcfe59c4b..7803a77c44 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -15,6 +15,8 @@ assignees: '' **Steps to reproduce**: *How you happened across the issue, and what you were doing at the time.* +**Link to mod(s) used, if applicable**: *The mod repositories or zip files that are related to the issue.* + --- *Place an X (no spaces) between the brackets to confirm that you have read the line below.* diff --git a/annotations/src/main/java/mindustry/annotations/Annotations.java b/annotations/src/main/java/mindustry/annotations/Annotations.java index fd4fe37f51..d15a137378 100644 --- a/annotations/src/main/java/mindustry/annotations/Annotations.java +++ b/annotations/src/main/java/mindustry/annotations/Annotations.java @@ -5,21 +5,6 @@ import java.lang.annotation.*; public class Annotations{ //region entity interfaces - public enum DrawLayer{ - floor, - floorOver, - groundShadows, - groundUnder, - ground, - flyingShadows, - flying, - bullets, - effects, - overlays, - names, - weather - } - /** Indicates that a method overrides other methods. */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.SOURCE) diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java index f47eafc237..f1fe85005b 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java @@ -161,6 +161,7 @@ public class EntityProcess extends BaseProcessor{ Log.debug(""); } + /* //generate special render layer interfaces for(DrawLayer layer : DrawLayer.values()){ //create the DrawLayer interface that entities need to implement @@ -171,7 +172,7 @@ public class EntityProcess extends BaseProcessor{ .addModifiers(Modifier.PUBLIC).addAnnotation(EntityInterface.class); inter.addMethod(MethodSpec.methodBuilder("draw" + Strings.capitalize(layer.name())).addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT).build()); write(inter); - } + }*/ }else if(round == 2){ //round 2: get component classes and generate interfaces for them //parse groups @@ -182,6 +183,7 @@ public class EntityProcess extends BaseProcessor{ groupDefs.add(new GroupDefinition(group.name(), ClassName.bestGuess(packageName + "." + interfaceName(types.first())), types, an.spatial(), an.mapping(), collides)); } + /* //add special generated groups for(DrawLayer layer : DrawLayer.values()){ String name = "DrawLayer" + Strings.capitalize(layer.name()) + "c"; @@ -190,7 +192,7 @@ public class EntityProcess extends BaseProcessor{ //add manual inclusions of entities to be added to this group def.manualInclusions.addAll(allDefs.select(s -> allComponents(s).contains(comp -> comp.interfaces().contains(in -> in.name().equals(name))))); groupDefs.add(def); - } + }*/ ObjectMap usedNames = new ObjectMap<>(); ObjectMap> extraNames = new ObjectMap<>(); @@ -457,12 +459,13 @@ public class EntityProcess extends BaseProcessor{ } } + /* for(DrawLayer layer : DrawLayer.values()){ MethodSpec.Builder groupDraw = MethodSpec.methodBuilder("draw" + Strings.capitalize(layer.name())) .addModifiers(Modifier.PUBLIC, Modifier.STATIC); groupDraw.addStatement("$L.draw($L::$L)", layer.name(), "DrawLayer" + Strings.capitalize(layer.name()) + "c", "draw" + Strings.capitalize(layer.name())); groupsBuilder.addMethod(groupDraw.build()); - } + }*/ groupsBuilder.addMethod(groupResize.build()); groupsBuilder.addMethod(groupUpdate.build()); diff --git a/annotations/src/main/resources/classids.properties b/annotations/src/main/resources/classids.properties index ed82e2bef1..676138b813 100644 --- a/annotations/src/main/resources/classids.properties +++ b/annotations/src/main/resources/classids.properties @@ -4,6 +4,7 @@ dagger=0 draug=10 mindustry.entities.def.BulletComp=1 mindustry.entities.def.DecalComp=2 +mindustry.entities.def.EffectComp=15 mindustry.entities.def.FireComp=3 mindustry.entities.def.GroundEffectComp=4 mindustry.entities.def.PlayerComp=5 diff --git a/annotations/src/main/resources/revisions/EffectEntity/0.json b/annotations/src/main/resources/revisions/EffectEntity/0.json new file mode 100644 index 0000000000..4e23d76400 --- /dev/null +++ b/annotations/src/main/resources/revisions/EffectEntity/0.json @@ -0,0 +1 @@ +{fields:[{name:color,type:arc.graphics.Color,size:-1},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:offsetX,type:float,size:4},{name:offsetY,type:float,size:4},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/core/assets-raw/sprites/blocks/production/block-forge.png b/core/assets-raw/sprites/blocks/production/block-forge.png new file mode 100644 index 0000000000..6d37c59675 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/block-forge.png differ diff --git a/core/assets-raw/sprites/blocks/production/block-launcher.png b/core/assets-raw/sprites/blocks/production/block-launcher.png new file mode 100644 index 0000000000..fa98a78ba4 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/block-launcher.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rock1.png b/core/assets-raw/sprites/blocks/props/rock1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/rock1.png rename to core/assets-raw/sprites/blocks/props/rock1.png diff --git a/core/assets-raw/sprites/blocks/environment/rock2.png b/core/assets-raw/sprites/blocks/props/rock2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/rock2.png rename to core/assets-raw/sprites/blocks/props/rock2.png diff --git a/core/assets-raw/sprites/blocks/environment/sand-boulder1.png b/core/assets-raw/sprites/blocks/props/sand-boulder1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sand-boulder1.png rename to core/assets-raw/sprites/blocks/props/sand-boulder1.png diff --git a/core/assets-raw/sprites/blocks/environment/sand-boulder2.png b/core/assets-raw/sprites/blocks/props/sand-boulder2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sand-boulder2.png rename to core/assets-raw/sprites/blocks/props/sand-boulder2.png diff --git a/core/assets-raw/sprites/blocks/environment/shale-boulder1.png b/core/assets-raw/sprites/blocks/props/shale-boulder1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/shale-boulder1.png rename to core/assets-raw/sprites/blocks/props/shale-boulder1.png diff --git a/core/assets-raw/sprites/blocks/environment/shale-boulder2.png b/core/assets-raw/sprites/blocks/props/shale-boulder2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/shale-boulder2.png rename to core/assets-raw/sprites/blocks/props/shale-boulder2.png diff --git a/core/assets-raw/sprites/blocks/environment/snowrock1.png b/core/assets-raw/sprites/blocks/props/snowrock1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/snowrock1.png rename to core/assets-raw/sprites/blocks/props/snowrock1.png diff --git a/core/assets-raw/sprites/blocks/environment/snowrock2.png b/core/assets-raw/sprites/blocks/props/snowrock2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/snowrock2.png rename to core/assets-raw/sprites/blocks/props/snowrock2.png diff --git a/core/assets-raw/sprites/blocks/environment/spore-cluster1.png b/core/assets-raw/sprites/blocks/props/spore-cluster1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/spore-cluster1.png rename to core/assets-raw/sprites/blocks/props/spore-cluster1.png diff --git a/core/assets-raw/sprites/blocks/environment/spore-cluster2.png b/core/assets-raw/sprites/blocks/props/spore-cluster2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/spore-cluster2.png rename to core/assets-raw/sprites/blocks/props/spore-cluster2.png diff --git a/core/assets-raw/sprites/blocks/environment/spore-cluster3.png b/core/assets-raw/sprites/blocks/props/spore-cluster3.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/spore-cluster3.png rename to core/assets-raw/sprites/blocks/props/spore-cluster3.png diff --git a/core/assets-raw/sprites/blocks/environment/white-tree-dead.png b/core/assets-raw/sprites/blocks/props/white-tree-dead.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/white-tree-dead.png rename to core/assets-raw/sprites/blocks/props/white-tree-dead.png diff --git a/core/assets-raw/sprites/blocks/environment/white-tree.png b/core/assets-raw/sprites/blocks/props/white-tree.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/white-tree.png rename to core/assets-raw/sprites/blocks/props/white-tree.png diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index f8211bbf96..592161138b 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -466,7 +466,7 @@ uncover = Descubrir configure = Configurar carga inicial bannedblocks = Bloques prohibidos addall = Añadir todo -configure.locked = [LIGHT_GRAY]Alcanza la oleada {0}\npara configurar la carga inicial. +configure.locked = [LIGHT_GRAY]Para configurar la carga inicial: {0}. configure.invalid = La cantidad debe estar entre 0 y {0}. zone.unlocked = [LIGHT_GRAY]{0} desbloqueado. zone.requirement.complete = Oleada {0} alcanzada:\nrequerimientos de la zona {1} cumplidos. @@ -1187,7 +1187,7 @@ block.bridge-conveyor.description = Bloque avanado de transporte. Puede transpor block.phase-conveyor.description = Bloque de transporte avanzado. Usa energía para transportar objetos a otro transportador de fase conectado a través de varias casillas. block.sorter.description = Clasifica objetos. Si un objeto es igual al seleccionado, pasará al frente. Si no, el objeto saldrá por la izquierda y la derecha. block.inverted-sorter.description = Procesa elementos como un clasificador estándar, pero en su lugar pasa elementos seleccionados a los lados. -block.router.description = Acepta objetos de una dirección luego los deja equitativamente en hasta 3 direcciones diferentes. Útil para dividir los materiales de una fuente de recursos a múltiples objetivos. /n/n[scarlet]Nunca usar como entrade de producción porque puede tapar con los objetos de salida.[] +block.router.description = Acepta objetos de una dirección luego los deja equitativamente en hasta 3 direcciones diferentes. Útil para dividir los materiales de una fuente de recursos a múltiples objetivos. \n\n[scarlet]Nunca usar como entrada de producción porque puede tapar con los objetos de salida.[] block.distributor.description = Un enrutador avanzado que distribuye objetos equitativamente en hasta otras 7 direcciones. block.overflow-gate.description = Un enrutador que solo saca por la izquierda y la derecha si la cinta del frente está llena. block.underflow-gate.description = El opuesto de la compuerda de desborde. Solo dispensa hacia el frente si los lados están bloqueados. diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 3050f68060..ea2c190bc8 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1,4 +1,4 @@ -credits.text = 제작자 [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] / [scarlet]한국어 번역자[] - [royal]Potion[] +credits.text = 제작자 [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] / [scarlet]한국어 번역자[] [royal]Potion[] ,[royal]Corby-Yun[] credits = 제작자 contributors = 번역 및 개발 기여자들 discord = Mindustry Discord 에 참여해보세요! @@ -13,9 +13,9 @@ link.google-play.description = Google Play 스토어 정보 link.f-droid.description = F-Droid 카탈로그 link.wiki.description = 공식 Mindustry 위키 link.feathub.description = 기능 아이디어 건의하기 -linkfail = 링크를 여는 데 실패했습니다!\nURL이 기기의 클립보드에 복사되었습니다. -screenshot = 스크린 샷이 {0} 경로에 저장되었습니다. -screenshot.invalid = 맵이 너무 커서 스크린 샷을 찍을 메모리가 충분하지 않습니다. +linkfail = 링크를 열지 못했습니다!\nURL이 클립보드에 복사되었습니다. +screenshot = 스크린 샷이 {0} 에 저장되었습니다. +screenshot.invalid = 맵이 너무 커서 메모리 부족해 스크린샷을 못했습니다. gameover = 게임 오버 gameover.pvp = [accent]{0}[] 팀이 승리했습니다! highscore = [accent]최고점수 달성! @@ -29,22 +29,22 @@ load.system = 시스템 load.mod = 모드 load.scripts = 스크립트 -be.update = 새로운 테스트 버전이 출시되었습니다. +be.update = 새로운 최신 빌드를 플레이 할 수 있습니다. be.update.confirm = 다운로드 후 게임을 재시작하시겠습니까? be.updating = 업데이트 중... be.ignore = 무시 -be.noupdates = 새로운 업데이트가 발견되지 않았습니다. -be.check = 업데이트 확인 +be.noupdates = 새로운 업데이트가 없습니다. +be.check = 업데이트 확인합니다. schematic = 설계도 schematic.add = 설계도 저장하기 schematics = 설계도 모음 -schematic.replace = A schematic by that name already exists. Replace it? -schematic.exists = A schematic by that name already exists. +schematic.replace = 이 설계도 이름이 이미 존재합니다. 바꾸겠습니까? +schematic.exists = 이 회로도 이름이 이미 존재합니다. schematic.import = 설계도 불러오기 schematic.exportfile = 파일 내보내기 schematic.importfile = 파일 불러오기 -schematic.browseworkshop = 창작마당 탐색 +schematic.browseworkshop = 창작마당 검색 schematic.copy = 클립보드에 복사하기 schematic.copy.import = 클립보드에서 붙여넣기 schematic.shareworkshop = 창작마당에 공유 @@ -52,26 +52,26 @@ schematic.flip = 좌우 뒤집기 : [accent][[{0}][] / 상하 뒤집기 : [accen schematic.saved = 설계도 저장됨. schematic.delete.confirm = 삭제된 설계도는 복구할 수 없습니다. 정말로 삭제하시겠습니까? schematic.rename = 설계도명 변경 -schematic.info = 크기 : {0}x{1}, 블럭 수 : {2} +schematic.info = {0}x{1}크기, {2} 블럭. -stat.wave = 버틴 단계 수 : [accent]{0} -stat.enemiesDestroyed = 파괴한 적 수 : [accent]{0} -stat.built = 건설한 건물 수 : [accent]{0} -stat.destroyed = 파괴된 건물 수 : [accent]{0} -stat.deconstructed = 파괴한 건물 수 : [accent]{0} -stat.delivered = 획득한 자원 : -stat.playtime = 지역 클리어시간 : [accent] {0} +stat.wave = 패배한 웨이브 : [accent]{0} +stat.enemiesDestroyed = 부순 적 수 : [accent]{0} +stat.built = 지은 건물 수 : [accent]{0} +stat.destroyed = 부서진 건물 수 : [accent]{0} +stat.deconstructed = 부순 건물 수 : [accent]{0} +stat.delivered = 얻은 자원 : +stat.playtime = 플레이 타임 : [accent] {0} stat.rank = 최종 점수 : [accent]{0} -launcheditems = [accent]창고 -launchinfo = [출격되지 않음][[출격]파랑색으로 표시된 자원들을 획득합니다. +launcheditems = [accent]보유 자원 +launchinfo = [출격되지 않음][[출격]파랑색으로 표시된 자원들을 얻습니다. map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까? level.highscore = 최고 점수 : [accent]{0} level.select = 맵 선택 level.mode = 게임 모드 : -showagain = 다음 세션에서 이 메세지를 표시하지 않습니다 +showagain = 다음 세션에 다시 이 메세지를 표시하지 않습니다. coreattack = < 코어가 공격받고 있습니다! > -nearpoint = [[ [scarlet]적 생성 구역에서 나가세요[] ]\n적 생성 시 구역 내 건물 및 유닛 파괴 +nearpoint = [[ [scarlet]낙하 지점 에서 나가세요[] ]\n적 낙하 시 낙하 지점 내 건물 및 유닛 파괴 database = 코어 기록보관소 savegame = 게임 저장 loadgame = 게임 불러오기 @@ -97,37 +97,37 @@ uploadingcontent = 컨텐츠 업로드 uploadingpreviewfile = 미리보기 파일 업로드 committingchanges = 바뀐 점 적용 done = 완료 -feature.unsupported = 당신의 기기는 이 기능을 지원하지 않습니다. +feature.unsupported = 이 기기는 이 기능을 지원하지 않습니다. -mods.alphainfo = 현재의 모드는 첫 번째 시도이며, 그리고[scarlet] 버그가 매우 많음을 명심하십시오[].\n만약 버그를 발견할경우 Mindustry 깃허브 또는 디스코드로 제보해주세요. +mods.alphainfo = 현재의 모드는 시험적 기능이며, [scarlet] 버그가 많을 수도 있습니다.[].\n만약 버그를 발견할경우 Mindustry 깃허브 또는 디스코드로 제보해주세요. mods.alpha = [accent](시험적 기능) mods = 모드 -mods.none = [LIGHT_GRAY]추가한 모드가 없습니다! -mods.guide = 모드 가이드 +mods.none = [LIGHT_GRAY]모드가 없습니다! +mods.guide = 모드 제작 가이드 mods.report = 문제 신고 mods.openfolder = 모드 폴더 열기 mod.display = [gray]모드 :[orange] {0} mod.enabled = [blue]활성화 mod.disabled = [scarlet]적용 안됨 mod.disable = [lightgray]비활성화 -mod.delete.error = 모드를 삭제할 수 없습니다. 아마도 해당 모드가 사용중인 것 같습니다. -mod.requiresversion = [scarlet]게임의 버전이 낮아 모드를 활성화할 수 없습니다!\n[scarlet]요구되는 게임 버전 : [accent]{0} +mod.delete.error = 모드를 삭제할 수 없습니다. 게임 밖에서 모드 파일을 사용 중일 수 있습니다. +mod.requiresversion = [scarlet]필요한 게임 버전 : [accent]{0} mod.missingdependencies = [scarlet]필요한 모드 : {0} mod.erroredcontent = [scarlet]컨텐츠 오류 -mod.errors = 모드 설정을 불러오는 중 오류가 발생하였습니다. +mod.errors = 내용을 불러오는 중 오류가 발생하였습니다. mod.noerrorplay = [scarlet]모드에 오류가 존재합니다.[] 해당 오류가 발생하는 모드를 비활성화하거나 모드의 오류를 고친 후 플레이가 가능합니다. mod.nowdisabled = [scarlet]모드 '{0}'는 다음의 모드에 의존합니다 : [accent] {1}\n[lightgray]이 모드를 먼저 다운로드해야합니다.\n이 모드는 자동으로 비활성화됩니다. mod.enable = 활성화 mod.requiresrestart = 모드 변경사항을 적용하기 위해 게임을 종료합니다. mod.reloadrequired = [scarlet]새로고침 예정됨 mod.import = 모드 추가 -mod.import.github = 깃허브 모드 추가 +mod.import.github = 깃허브에서 모드 불러오기 mod.item.remove = 이것은 모드[accent] '{0}'[]의 자원입니다. 이 자원을 삭제하려면, 이 모드를 제거해야합니다. mod.remove.confirm = 이 모드를 삭제하시겠습니까? mod.author = [LIGHT_GRAY]제작자 : [] {0} -mod.missing = 이 세이브파일에는 설치하지 않은 모드 혹은 현재 버전에 속해있지 않은 데이터가 포함되어 있습니다. 이 파일을 불러올 경우 세이브파일의 데이터가 손상될 수 있습니다. 정말로 이 파일을 불러오시겠습니까?\n[lightgray]모드 :\n{0} -mod.preview.missing = 창작마당에 당신의 모드를 업로드하기 전에 미리보기 이미지를 먼저 추가해야합니다.\n[accent] preview.png[]라는 이름으로 미리보기 이미지를 당신의 모드 폴더안에 준비한 후 다시 시도해주세요. -mod.folder.missing = 창작마당에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 파일을 폴더에 압축 해제하고 이전 압축파일을 제거한 후, 게임을 재시작하거나 모드를 다시 로드하십시오. +mod.missing = 이 세이브에는 설치하지 않은 모드나 현재 버전에 없는 데이터가 포함되어 있습니다. 세이브가 손상될 수 있습니다. 불러오시겠습니까?\n[lightgray]모드 :\n{0} +mod.preview.missing = 창작마당에 모드를 업로드하기 전에 미리보기 이미지를 추가해야합니다.\n[accent] 모드 폴더안에 preview.png[]이름의 미리보기 이미지를 준비한 후 다시 시도해주세요. +mod.folder.missing = 창작마당에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 모드 파일을 모드 폴더에 압축 풀고 이전 모드 파일을 삭제 후, 게임을 재시작하거나 모드를 다시 로드하십시오. mod.scripts.unsupported = 당신의 기기는 자바스크립트를 지원하지 않습니다. 모드의 일부 기능이 작동하지 않을 수 있습니다. about.button = 정보 @@ -140,18 +140,18 @@ techtree = 연구 기록 research.list = [LIGHT_GRAY]연구 : research = 연구 researched = [LIGHT_GRAY]{0}연구 완료. -players = 현재 {0}명 접속 중 -players.single = 현재 {0}명만 있음. -players.search = search -players.notfound = [gray]no players found +players = {0}명 접속 중 +players.single = {0}명만 있음. +players.search = 플레이어 검색 +players.notfound = [gray]플레이어를 찾을수 없습니다. server.closing = [accent]서버 닫는 중... server.kicked.kick = 서버에서 추방되었습니다! server.kicked.whitelist = 당신은 이 서버의 화이트리스트에 등록되어있지 않습니다. -server.kicked.serverClose = 서버 종료됨. -server.kicked.vote = 당신은 투표로 추방되었습니다. 그러니 좀 적당히 하지 그랬어요? +server.kicked.serverClose = 서버 닫힘. +server.kicked.vote = 당신은 투표로 추방되었습니다. 잘가요. server.kicked.clientOutdated = 오래된 버전의 게임입니다! 게임을 업데이트하세요! server.kicked.serverOutdated = 오래된 버전의 서버입니다! 서버 호스트 관리자에게 문의하세요! -server.kicked.banned = 서버 규칙 위반으로 인해, 이제 당신은 영원히 이 서버를 플레이 하실 수 없습니다. +server.kicked.banned = 이 서버에서 벤 되었습니다. server.kicked.typeMismatch = 클라이언트와 호환되지 않는 서버입니다. 디스코드에서 #mods에 들러보는 건 어떨까요? server.kicked.playerLimit = 서버가 꽉 찼습니다. 빈 공간이 생길 때까지 기다려주세요. server.kicked.recentKick = 방금 추방되었습니다.\n잠시 기다린 후에 접속해주세요. @@ -159,7 +159,7 @@ server.kicked.nameInUse = 이 닉네임은 이미 이 서버에서 사용중입 server.kicked.nameEmpty = 당신의 닉네임이 비어있습니다. server.kicked.idInUse = 이미 서버에 접속중입니다! 다중 계정은 허용되지 않습니다. server.kicked.customClient = 이 서버는 직접 빌드한 버전을 지원하지 않습니다. 공식 버전을 사용하세요. -server.kicked.gameover = 코어가 파괴되었습니다... +server.kicked.gameover = 게임 오버! server.kicked.serverRestarting = 서버가 재시작합니다. server.versions = 클라이언트 버전 : [accent] {0}[]\n서버 버전 : [accent] {1}[] host.info = [accent]호스트[] 버튼은 현재 네트워크의 [scarlet]6567[] 포트를 사용합니다.\n[LIGHT_GRAY]같은 Wi-Fi 또는 로컬 네트워크[] 에서 서버 목록을 볼 수 있습니다.\n\n만약 플레이어들이 이 IP를 통해 어디에서나 연결할 수 있게 하고 싶다면, 공유기 설정에서 [accent]포트 포워딩[]을 하시거나 VPN을 사용하셔야 합니다.\n\n[LIGHT_GRAY]참고: LAN 게임 연결에 문제가 있는 사람이 있다면, 방화벽 설정에서 Mindustry 가 로컬 네트워크에 액세스하도록 허용했는지 확인해주세요. @@ -243,7 +243,7 @@ on = 활성화 off = 비활성화 save.autosave = 자동저장 : {0} save.map = 맵 : {0} -save.wave = {0} 단계 +save.wave = {0} 웨이브 save.mode = 게임모드 : {0} save.date = 마지막 저장일 : {0} save.playtime = 플레이타임 : {0} @@ -276,9 +276,9 @@ cancelbuilding = [accent][[{0}][] 를 눌러 설계도 초기화 selectschematic = [accent][[{0}][] 를 눌러 선택+복사 pausebuilding = [accent][[{0}][] 를 눌러 설계모드 진입 resumebuilding = [scarlet][[{0}][] 를 눌러 건설 시작 -wave = [accent] {0} 단계 -wave.waiting = [green]{0}초[]후 다음 단계 시작 -wave.waveInProgress = [LIGHT_GRAY]단계 진행중 +wave = [accent] {0} 웨이브 +wave.waiting = [green]{0}초[]후 다음 웨이브 시작 +wave.waveInProgress = [LIGHT_GRAY]웨이브 진행중 waiting = [LIGHT_GRAY]대기중... waiting.players = 다른 플레이어를 기다리는 중.. wave.enemies = [LIGHT_GRAY]적 유닛 {0}마리 남았음 @@ -315,18 +315,18 @@ editor.mapinfo = 맵 정보 editor.author = 제작자 : editor.description = 설명 : editor.nodescription = 맵을 업로드하려면 최소 4자 이상의 설명이 있어야합니다. -editor.waves = 단계 : +editor.waves = 웨이브 : editor.rules = 규칙 : editor.generation = 맵 생성 설정 : editor.ingame = 인게임 편집 editor.publish.workshop = 창작마당 업로드 editor.newmap = 신규 맵 workshop = Workshop -waves.title = 단계 +waves.title = 웨이브 waves.remove = 삭제 waves.never = 여기까지 유닛생성 waves.every = 매 -waves.waves = 단계마다 +waves.waves = 웨이브마다 waves.perspawn = 생성 waves.to = 부터 waves.boss = 이 유닛을 보스로 설정 @@ -334,9 +334,9 @@ waves.preview = 미리보기 waves.edit = 편집 waves.copy = 클립보드로 복사 waves.load = 클립보드에서 불러오기 -waves.invalid = 클립보드의 잘못된 단계 데이터 -waves.copied = 단계 코드 복사됨 -waves.none = 적 단계가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 단계로 설정됩니다. +waves.invalid = 클립보드의 잘못된 웨이브 데이터 +waves.copied = 웨이브 코드 복사됨 +waves.none = 적 웨이브가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 웨이브로 설정됩니다. editor.default = [LIGHT_GRAY]<기본값> details = 설명 edit = 편집 @@ -451,17 +451,17 @@ abandon = 지역 포기 abandon.text = 이 구역의 모든 자원이 적에게 빼앗길 것입니다. locked = 잠김 complete = [LIGHT_GRAY]지역 해금 조건 : -requirement.wave = {1}지역에서 {0}단계 달성 +requirement.wave = {1}지역에서 {0}웨이브 달성 requirement.core = {0}지역에서 적 코어를 파괴 requirement.unlock = {0}지역 해금 resume = 현재 진행 중인 지역\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]달성한 최고 단계 : {0} +bestwave = [LIGHT_GRAY]달성한 최고 웨이브 : {0} launch = < 출격 > launch.title = 출격 성공 -launch.next = [LIGHT_GRAY]다음 출격 기회는 {0} 단계에서 나타납니다. +launch.next = [LIGHT_GRAY]다음 출격 기회는 {0} 웨이브에서 나타납니다. launch.unable2 = [scarlet]출격할 수 없습니다.[] launch.confirm = 출격하게 되면 코어에 저장된 모든 자원이 창고로 들어갑니다.\n또한 출격한 지역에는 아무것도 남지 않습니다. -launch.skip.confirm = 만약 지금 출격하지 않고 스킵하신다면, 다음 출격 단계까지 기다려야 합니다. +launch.skip.confirm = 만약 지금 출격하지 않고 스킵하신다면, 다음 출격 웨이브까지 기다려야 합니다. uncover = 지역 개방 configure = 코어 시작자원 설정 bannedblocks = 금지된 블럭들 @@ -469,7 +469,7 @@ addall = 모두 추가 configure.locked = [lightgray]{0}시 시작자원 설정이 해금됩니다. configure.invalid = 해당 값은 0 과 {0} 사이여야 합니다. zone.unlocked = [LIGHT_GRAY]지역 {0}이 잠금 해제되었습니다! -zone.requirement.complete = {0} 단계 달성 성공! \n{1} 지역 요구사항이 충족되었습니다! +zone.requirement.complete = {0} 웨이브 달성 성공! \n{1} 지역 요구사항이 충족되었습니다! zone.config.unlocked = 시작자원 설정 해금! : [lightgray]\n{0} zone.resources = 감지된 자원 목록 : zone.objective = [lightgray]지역 임무 : [accent]{0} @@ -508,7 +508,7 @@ zone.groundZero.description = 이 장소는 다시 시작하기에 최적의 환 zone.frozenForest.description = 이 지역도 산과 가까운 지역입니다 포자들이 흩뿌려져 있으며 극한의 추위도 포자를 막을 수 있을 것 같지 않습니다.\n화력 발전소를 짓고 전력을 확보하여 채광 드론을 사용하는 법을 배우십시오. zone.desertWastes.description = 이 황무지는 끝을 알 수 없을 정도로 광활하고 십자가 형태의 버려진 구조물이 존재합니다.\n석탄이 존재하며 이를 화력발전에 쓰거나 흑연 정제에 쓰십시오.\n\n[lightgray]이 지역에서의 착륙장소는 확실하지 않습니다. zone.saltFlats.description = 이 소금 사막은 매우 척박하여 자원이 거의 없습니다.\n하지만 자원이 희소한 이곳에서도 적들의 요새가 발견되었습니다. 그들을 사막의 모래로 만들어버리십시오. -zone.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 다시 점령해 강화유리를 제작하고 물을 끌어올려 포탑과 드릴에 공급하여 더 좋은 효율로 방어선을 강화하십시오. +zone.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 다시 점령해 금속유리를 제작하고 물을 끌어올려 포탑과 드릴에 공급하여 더 좋은 효율로 방어선을 강화하십시오. zone.ruinousShores.description = 이 지역은 과거 해안방어기지로 사용되었습니다.\n그러나 지금은 기본구조물만 남아있으니 이 지역을 어서 신속히 수리하여 외부로 세력을 확장한 뒤, 잃어버린 기술을 다시 회수하십시오. zone.stainedMountains.description = 더 안쪽에는 포자에 오염된 산맥이 있지만, 이 곳은 포자에 오염되지 않았습니다.\n이 지역에서 티타늄을 채굴하고 이것을 어떻게 사용하는지 배우십시오.\n\n적들은 이곳에서 더 강력합니다. 더 강한 유닛들이 나올 때까지 시간을 낭비하지 마십시오. zone.overgrowth.description = 이 곳은 포자들의 근원과 가까이에 있는 과성장 지대입니다. 적이 이 곳에 전초기지를 설립했습니다. 디거를 생산해 적의 코어를 박살 내고 우리가 잃어버린 것들을 되돌려받으십시오! @@ -593,7 +593,7 @@ bar.power = 전력 bar.progress = 생산 진행도 bar.spawned = 최대 {1}기 중 {0}기 생산됨 bar.input = 입력 -bar.output = Output +bar.output = 출력 bullet.damage = [lightgray]피해량 : [stat]{0}[] bullet.splashdamage = [lightgray]범위 피해량 : [stat]{0}[] / [lightgray]피해 범위 : [stat]{1}[lightgray] 타일 @@ -652,8 +652,8 @@ setting.difficulty.normal = 보통 setting.difficulty.hard = 어려움 setting.difficulty.insane = 미침 setting.difficulty.name = 난이도 : -setting.screenshake.name = 화면 흔들기 -setting.effects.name = 화면 효과 +setting.screenshake.name = 화면 흔들림 +setting.effects.name = 효과 보임 setting.destroyedblocks.name = 부서진 블럭 표시 setting.conveyorpathfinding.name = 교차기 자동 설치 setting.coreselect.name = Schematic Cores 켜기 @@ -687,7 +687,7 @@ public.confirm = 게임을 공개하시겠습니까?\n[lightgray]설정 - 게임 public.beta = [accent]!정보![] 베타 버전은 공개 게임 서버를 열지 못합니다. uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 스케일을 확인하세요.\n[scarlet][accent] {0}[]초 후에 예전 설정으로 되돌리고 게임을 종료합니다... uiscale.cancel = 취소 & 나가기 -setting.bloom.name = 화려한 이펙트 +setting.bloom.name = 빛발산 켜기 keybind.title = 조작키 설정 keybinds.mobile = [scarlet]대부분의 키들은 모바일에서 작동하지 않습니다. 기본적인 것들만 지원됩니다. category.general.name = 일반 @@ -751,9 +751,9 @@ keybind.drop_unit.name = 유닛 처치 시 자원획득 keybind.zoom_minimap.name = 미니맵 확대 mode.help.title = 게임모드 도움말 mode.survival.name = 생존 -mode.survival.description = 이것은 일반 모드입니다. 제한된 자원을 가지고 자동으로 다음 단계가 시작됩니다. +mode.survival.description = 이것은 일반 모드입니다. 제한된 자원을 가지고 자동으로 다음 웨이브가 시작됩니다. mode.sandbox.name = 샌드박스 -mode.sandbox.description = 무한한 자원을 가지고 자유롭게 다음 단계를 시작할 수 있습니다. +mode.sandbox.description = 무한한 자원을 가지고 자유롭게 다음 웨이브를 시작할 수 있습니다. mode.editor.name = 편집기 mode.pvp.name = PvP mode.pvp.description = 실제 플레이어와 PvP를 합니다. 맵에 적어도 2개의 다른 색상 코어가 있어야 합니다. @@ -763,8 +763,8 @@ mode.custom = 사용자 정의 규칙 rules.infiniteresources = 무한 자원 rules.reactorexplosions = 원자로 폭발 허가 여부 -rules.wavetimer = 단계 대기시간 -rules.waves = 단계 활성화 +rules.wavetimer = 웨이브 대기시간 +rules.waves = 웨이브 활성화 rules.attack = 공격 모드 rules.enemyCheat = 무한한 적 자원 rules.unitdrops = 유닛 처치시 자원 약탈 @@ -776,15 +776,15 @@ rules.playerdamagemultiplier = 플레이어 공격력 배수 rules.unitdamagemultiplier = 유닛 공격력 배수 rules.enemycorebuildradius = 적 코어 건설 금지구역 범위 : [LIGHT_GRAY] (타일) rules.respawntime = 플레이어 부활 대기 시간 : [LIGHT_GRAY] (초) -rules.wavespacing = 단계 간격 : [LIGHT_GRAY] (초) +rules.wavespacing = 웨이브 간격 : [LIGHT_GRAY] (초) rules.buildcostmultiplier = 건설 소모 배수 rules.buildspeedmultiplier = 건설 속도 배수 rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier -rules.waitForWaveToEnd = 단계가 끝날때까지 기다리는 중 +rules.waitForWaveToEnd = 웨이브가 끝날때까지 기다리는 중 rules.dropzoneradius = 소환 충격파 범위 : [LIGHT_GRAY] (타일) -rules.respawns = 단계당 최대 플레이어 부활 횟수 +rules.respawns = 웨이브당 최대 플레이어 부활 횟수 rules.limitedRespawns = 플레이어 부활 제한 -rules.title.waves = 단계 +rules.title.waves = 웨이브 rules.title.respawns = 플레이어 부활 rules.title.resourcesbuilding = 자원 & 건축 rules.title.player = 플레이어들 @@ -812,9 +812,9 @@ item.phase-fabric.name = 메타 item.surge-alloy.name = 설금 item.spore-pod.name = 포자 포드 item.sand.name = 모래 -item.blast-compound.name = 폭발물 -item.pyratite.name = 파이라타이트 -item.metaglass.name = 강화유리 +item.blast-compound.name = 복합폭약 +item.pyratite.name = 피라타이트 +item.metaglass.name = 금속유리 item.scrap.name = 고철 liquid.water.name = 물 liquid.slag.name = 광재 @@ -822,7 +822,7 @@ liquid.oil.name = 석유 liquid.cryofluid.name = 냉각수 mech.alpha-mech.name = 알파 mech.alpha-mech.weapon = 중무장 소총 -mech.alpha-mech.ability = 자가 +mech.alpha-mech.ability = 자가 mech.delta-mech.name = 델타 mech.delta-mech.weapon = 전격 충전기 mech.delta-mech.ability = 충전 @@ -971,7 +971,7 @@ block.separator.name = 원심 분리기 block.coal-centrifuge.name = 석탄 원심분리기 block.power-node.name = 전력 노드 block.power-node-large.name = 대형 전력 노드 -block.surge-tower.name = 설금 타워 +block.surge-tower.name = 설금 전력 타워 block.diode.name = 배터리 다이오드 block.battery.name = 배터리 block.battery-large.name = 대형 배터리 @@ -1001,19 +1001,19 @@ block.power-void.name = 방전장치 block.power-source.name = 전력 공급기 block.unloader.name = 언로더 block.vault.name = 창고 -block.wave.name = 파도 -block.swarmer.name = 스웜 +block.wave.name = 웨이브 +block.swarmer.name = 스워머 block.salvo.name = 살보 block.ripple.name = 립플 block.phase-conveyor.name = 메타 컨베이어 block.bridge-conveyor.name = 터널 컨베이어 block.plastanium-compressor.name = 플라스터늄 압축기 -block.pyratite-mixer.name = 파이라타이트 혼합기 -block.blast-mixer.name = 폭발물 혼합기 +block.pyratite-mixer.name = 피라타이트 혼합기 +block.blast-mixer.name = 복합폭약 혼합기 block.solar-panel.name = 태양 전지판 block.solar-panel-large.name = 대형 태양 전지판 block.oil-extractor.name = 석유 추출기 -block.command-center.name = 지휘소 +block.command-center.name = 드론 명령센터 block.draug-factory.name = 광부 드론 공장 block.spirit-factory.name = 수리 드론 공장 block.phantom-factory.name = 건설 드론 공장 @@ -1024,12 +1024,12 @@ block.crawler-factory.name = 크롤러 공장 block.titan-factory.name = 타이탄 공장 block.fortress-factory.name = 포트리스 공장 block.revenant-factory.name = 망령 전함 공장 -block.repair-point.name = 수리 지점 +block.repair-point.name = 드론 수리 지점 block.pulse-conduit.name = 펄스 파이프 block.plated-conduit.name = 도금된 파이프 block.phase-conduit.name = 메타 파이프 block.liquid-router.name = 액체 분배기 -block.liquid-tank.name = 물탱크 +block.liquid-tank.name = 액체 탱크 block.liquid-junction.name = 액체 교차기 block.bridge-conduit.name = 다리 파이프 block.rotary-pump.name = 동력 펌프 @@ -1039,8 +1039,8 @@ block.blast-drill.name = 압축 공기분사 드릴 block.thermal-pump.name = 화력 펌프 block.thermal-generator.name = 열발전기 block.alloy-smelter.name = 설금 제련소 -block.mender.name = 소형 수리 프로젝터 -block.mend-projector.name = 수리 프로젝터 +block.mender.name = 수리 프로젝터 +block.mend-projector.name = 대형 수리 프로젝터 block.surge-wall.name = 설금 벽 block.surge-wall-large.name = 큰 설금 벽 block.cyclone.name = 사이클론 @@ -1095,9 +1095,9 @@ tutorial.breaking = 설계를 방해하는 블록을 제거하기 위해서 [acc tutorial.breaking.mobile = 설계를 방해하는 블록을 제거하기 위해서 [accent]망치 버튼을 눌러 제거모드[]로 변경하신 후, 첫번째 지점을 누른 후 드래그하여 범위를 지정한뒤 V버튼을 클릭해 블럭을 제거하세요.\n\n[accent]코어 근처의 조각벽 3개[]를 제거하세요. tutorial.withdraw = [accent]코어나 창고, 공장[]같은 자원을 넣을 수 있는 일부 블럭에서는 직접 자원을 빼낼 수도 있습니다.\n[accent]코어를 클릭 후 자원을 눌러서 자원을 빼내세요. tutorial.deposit = 자원을 다시 블록에 넣을 수도 있습니다.\n\n[accent]당신의 기체에서 코어로 드래그[]하여 자원을 되돌려 넣으세요. -tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계 동안 코어를 보호하세요.[] -tutorial.waves.mobile = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계동안 코어를 방어하세요.[] -tutorial.launch = 특정 단계에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날라가게 되니 주의하세요. +tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2웨이브 동안 코어를 보호하세요.[] +tutorial.waves.mobile = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2웨이브 동안 코어를 방어하세요.[] +tutorial.launch = 특정 웨이브에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날라가게 되니 주의하세요. item.copper.description = 모든 종류의 블록에서 광범위하게 사용되는 자원입니다. item.lead.description = 쉽게 구할 수 있으며, 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다. @@ -1113,7 +1113,7 @@ item.plastanium.description = 고급 항공기 및 분열 탄약에 사용되는 item.phase-fabric.description = 최첨단 전자 제품과 자기수리 기술에 사용되는 거의 무중력에 가까운 물질입니다.\n\n[royal]메타 가속하면 범위가 늘어나는 건물들이 있습니다. item.surge-alloy.description = 순간적으로 전압이 증가하는 전기 특성을 가진 고급 합금입니다. item.spore-pod.description = 석유를 만들거나 탄약과 합성해 연료로 전환하는데 사용됩니다. -item.blast-compound.description = 터렛 및 건설의 재료로 사용되는 휘발성 폭발물.\n연료로도 사용할 수 있지만, 별로 추천하지는 않습니다. +item.blast-compound.description = 터렛 및 건설의 재료로 사용되는 휘발성 복합폭약.\n연료로도 사용할 수 있지만, 별로 추천하지는 않습니다. item.pyratite.description = 인화성을 가진 재료로, 주로 터렛의 탄약으로 사용됩니다. liquid.water.description = 여러 포탑을 가속하는 데 사용할 수 있고, 파도와 멜트다운의 탄약으로도 사용되며 여러 공장에서도 사용되는 무구한 가능성을 가진 액체입니다. liquid.slag.description = 다양한 종류의 금속들이 함께 섞여 녹아있습니다. 원심분리기를 이용해 다른 광물들로 분리하거나 탄약으로 사용해 적 부대를 향해 살포할 수 있습니다. @@ -1137,18 +1137,18 @@ unit.fortress.description = 중무장 포병 지상 유닛.\n높은 공격력을 unit.eruptor.description = 지상 유닛. 광재를 넣은 파도와 같은 무기를 장착했습니다. unit.wraith.description = 적 핵심 건물 및 유닛을 집중적으로 공격하는 방식을 사용하는 전투기 입니다. unit.ghoul.description = 무겁고 튼튼한 지상 폭격기 입니다.\n주로 적 건물로 이동하여 엄청난 폭격을 가합니다. -unit.revenant.description = 플레이어가 생산가능한 최종 공중 전투기. 폭발물을 쓰는 스웜 포탑과 같은 무기를 사용합니다. +unit.revenant.description = 플레이어가 생산가능한 최종 공중 전투기. 복합폭약을 쓰는 스워머 포탑과 같은 무기를 사용합니다. block.message.description = 글을 작성할 수 있습니다. 이것을 이용하여 같은 팀과 소통을 해보세요. -block.graphite-press.description = 석탄 덩어리를 흑연으로 압축합니다. +block.graphite-press.description = 석탄들을 흑연으로 압축합니다. block.multi-press.description = 흑연 압축기의 상위 버전입니다. 물과 전력을 이용해 석탄을 빠르고 효율적으로 압축합니다. block.silicon-smelter.description = 석탄과 모래를 사용해 실리콘을 생산합니다. -block.kiln.description = 모래와 납을 사용해 강화유리를 만듭니다. 소량의 전력이 필요합니다. +block.kiln.description = 모래와 납을 사용해 금속유리를 만듭니다. 소량의 전력이 필요합니다. block.plastanium-compressor.description = 석유와 티타늄으로 플라스터늄을 생산합니다. block.phase-weaver.description = 토륨과 많은 양의 모래로 메타를 합성합니다. -block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리로 서지 합금을 생산합니다. -block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효과적인 냉각수로 결합시킵니다. -block.blast-mixer.description = 포자를 사용하여 파이라타이트를 폭발성 화합물로 변환시킵니다. -block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다. +block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리로 설금을 생산합니다. +block.cryofluidmixer.description = 물과 티타늄을 물보다 냉각이 좋은 냉각수로 결합시킵니다. +block.blast-mixer.description = 포자를 사용하여 피라타이트를 폭발성 화합물로 변환시킵니다. +block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 피라타이트로 만듭니다. block.melter.description = 고철을 녹여 파도의 탄약 혹은 원심 분리기에 사용할 수 있는 액체인 광재로 만듭니다. block.separator.description = 광재를 각종 자원으로 재활용 할 수 있게 해 주는 건물입니다. block.spore-press.description = 포자를 압축해 기름을 추출합니다. @@ -1174,11 +1174,11 @@ block.phase-wall-large.description = 메타 벽 4개를 뭉친 블럭입니다. block.surge-wall.description = 공격을 받으면 낮은 확률로 공격자에게 전격 공격을 합니다. block.surge-wall-large.description = 설금 벽 4개를 뭉친 블럭입니다. block.door.description = 눌러서 열고 닫을 수 있는 문.\n만약 문이 열리면, 적들은 총을 쏘며 문을 통과할 수 있습니다. -block.door-large.description = 문 4개를 뭉친 블럭입니다. +block.door-large.description = 4칸의 대형문 입니다. block.mender.description = 주변 블록들을 주기적으로 치료합니다. -block.mend-projector.description = 주변 블록들을 멘더보다 더 넓은 범위, 더 많은 회복량, 더 빠른 속도로 수리합니다. +block.mend-projector.description = 수리 프로젝터보다 더 넓은 범위, 더 많은 회복량, 더 빠른 속도를 가졌습니다. block.overdrive-projector.description = 드릴과 컨베이어와 같은 인근 건물의 속도를 높여줍니다. -block.force-projector.description = 육각형 보호막을 만들고, 내구도가 다 닳기 전까지 보호막 내로 들어오는 모든 공격을 방어합니다. +block.force-projector.description = 육각형 보호막을 만들고, 보호막의 내구도가 다 닳기 전까지 보호막 내로 들어오는 모든 공격을 방어합니다. block.shock-mine.description = 지뢰를 밟는 적에게 피해를 줍니다. 적에게는 거의 보이지 않습니다. 일단 설치 완료된 후에는 적 유닛이 공격하지 않습니다. 그러나 지뢰가 있는 곳은 피해가니 주의하세요. block.conveyor.description = 기본 자원 수송 레일. 자원을 배치된 방향을 따라 이동시켜 자동으로 건물에 넣어줍니다. block.titanium-conveyor.description = 고급 자원 수송 레일. 기본 컨베이어보다 자원을 더 빨리 이동시킵니다. @@ -1199,7 +1199,7 @@ block.conduit.description = 기본 파이프\n액체를 배치된 방향으로 block.pulse-conduit.description = 고급 파이프\n기본 파이프보다 액체 운송 속도가 빠릅니다. block.plated-conduit.description = 펄스 파이프와 같은 속도로 액체를 운송시키지만, 체력이 더 많습니다. 양 옆으로는 파이프 의외의 대상에서 액체를 받지 않습니다. \n파이프 끝 부분이 블럭에 연결되지 않고 노출되었을 때 누수되는 액체의 양이 더 적습니다. block.liquid-router.description = 액체를 다른 방향으로 분배할 수 있게 하는 블럭입니다. -block.liquid-tank.description = 액체를 저장할 수 있는 물탱크 입니다. +block.liquid-tank.description = 액체를 저장할 수 있는 액체 탱크 입니다. block.liquid-junction.description = 교차기와 같은 기능을 하나 자원 대신에 액체를 교차시킵니다. block.bridge-conduit.description = 액체 수송블록\n다리와 다리 사이를 연결하여 액체가 지나갈 수 있게 해 줍니다.\n\n주로 중간에 파이프 설치를 막는 장애물이 있을 때 사용합니다. block.phase-conduit.description = 고급 액체 수송블록\n전기를 사용하여 같은 줄의 먼 거리에 있는 다른 위상 파이프로 액체를 전달합니다. @@ -1212,19 +1212,19 @@ block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 block.combustion-generator.description = 인화성 물질을 태워 소량의 전력을 생산합니다. block.thermal-generator.description = 열이 있는 타일 위에 건설하면 전력을 생산합니다.\n\n[ROYAL]용암 웅덩이 혹은 열기지대에서 무한정 열을 발산합니다. block.turbine-generator.description = 화력 발전기보다 효율적이지만, 액체가 추가적으로 필요합니다.\n\n[ROYAL]일반 타일에서 물추출기 1개로 2개가 가동가능합니다. -block.differential-generator.description = 냉각수와 파이라타이트의 온도 차를 이용해 안정적으로 원자로에 버금가는 양의 전기를 생산합니다. +block.differential-generator.description = 냉각수와 피라타이트의 온도 차를 이용해 안정적으로 원자로에 버금가는 양의 전기를 생산합니다. block.rtg-generator.description = 방사성동위원소 열전기 발전기\n토륨 또는 메타를 사용하며, 냉각이 필요 없는 발전을 하지만 토륨 원자로에 비해 발전량이 매우 적습니다. block.solar-panel.description = 태양광으로 극소량의 전기을 생산합니다. block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 발전량이 많지만, 건축비도 훨씬 비쌉니다. block.thorium-reactor.description = 토륨을 이용해 막대한 양의 전기를 생산합니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다.\n\n[royal]폭발로 인한 피해를 버틸 수 있는 건물은 없습니다. -block.impact-reactor.description = 최첨단 발전기\n폭발물과 냉각수를 이용해 최고의 효율로 매우 많은 양의 전기를 생산할 수 있습니다. 발전을 시작하는 데 전기가 필요하며 발전기를 가동하는 데 시간이 많이 걸립니다.\n[royal]오버드라이브 프로젝터로 10000이상의 전기를 생산할 수 있으며, 가동중에 전기가 끊기면 가동을 다시 해야되기 때문에 창고, 물탱크, 배터리 등을 주위에 설치하고 나서 가동하는 것을 추천드립니다. +block.impact-reactor.description = 최첨단 발전기\n복합폭약과 냉각수를 이용해 최고의 효율로 매우 많은 양의 전기를 생산할 수 있습니다. 발전을 시작하는 데 전기가 필요하며 발전기를 가동하는 데 시간이 많이 걸립니다.\n[royal]오버드라이브 프로젝터로 10000이상의 전기를 생산할 수 있으며, 가동중에 전기가 끊기면 가동을 다시 해야되기 때문에 창고, 물탱크, 배터리 등을 주위에 설치하고 나서 가동하는 것을 추천드립니다. block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 설치되었을 때 매우 느린 속도로 채광합니다.\n\n[ROYAL]구리와 납은 채광 드론으로 대체가 가능합니다. -block.pneumatic-drill.description = 기압을 이용하여 보다 빠르게 단단한 물질을 채광할 수 있는 향상된 드릴.\n\n[ROYAL]전기를 사용하지 않는 드릴이라도 물과 오버드라이브를 이용하여 가속할 수 있습니다. +block.pneumatic-drill.description = 티타늄을 채광할 수 있는 향상된 드릴입니다. \n\n[ROYAL]전기를 사용하지 않는 드릴이라도 물과 오버드라이브를 이용하여 가속할 수 있습니다. block.laser-drill.description = 토륨을 채광할 수 있는 고급 드릴입니다. 전력과 물을 공급하여 빠른 속도로 채광할 수 있습니다.\n\n[ROYAL]드릴 아래에 배치된 광물타일의 비율에 따라 채광량이 달라집니다. block.blast-drill.description = 최상위 드릴입니다. 많은 양의 전력이 필요합니다.\n\n[ROYAL]물추출기 하나면 충분합니다. block.water-extractor.description = 땅에서 물을 추출합니다. 근처에 호수가 없을 때 사용하세요.\n\n[ROYAL]물추출기의 효율이 달라지는 타일이 있습니다. block.cultivator.description = 소량의 포자를 산업용으로 사용가능한 포자로 배양하는 건물입니다. -block.oil-extractor.description = 대량의 전력과 물을 사용하여 모래에서 석유를 추출합니다. 근처에 직접적인 석유 공급원이 없을 때 사용하세요.\n\n[royal]모래 또는 고철을 이용하여 창조경제가 가능합니다. +block.oil-extractor.description = 대량의 전력과 물을 사용하여 모래에서 석유를 추출합니다. 근처에 직접적인 석유 공급원이 없을 때 사용하세요. block.core-shard.description = 코어의 1단계 형태입니다.\n이것이 파괴되면 플레이하고 있는 지역과의 연결이 끊어지니 적의 공격에 파괴되지 않도록 주의하세요.\n[ROYAL]연결이 끊긴다는 말은 게임오버와 일맥상통합니다. block.core-foundation.description = 코어의 2단계 형태입니다.\n첫 번째 코어보다 더 튼튼하고 더 많은 자원을 저장할 수 있습니다.\n\n[ROYAL]크기도 좀 더 큽니다. block.core-nucleus.description = 코어의 3단계이자 마지막 형태입니다.\n최고로 튼튼하며 막대한 양의 자원들을 저장할 수 있습니다. @@ -1253,7 +1253,7 @@ block.spirit-factory.description = 블록을 수리하는 수리 드론을 생 block.phantom-factory.description = 건설을 도와주는 빌더 드론을 생산합니다.\n\n[ROYAL]당신의 환영입니다. block.wraith-factory.description = 빠른 뺑소니 요격기 유닛을 생산합니다.\n\n[ROYAL]체력 자체는 무척 적습니다. block.ghoul-factory.description = 중탄두 폭격기를 생산합니다.\n\n[ROYAL]적 위를 유령처럼 맴돕니다. -block.revenant-factory.description = 중량의 폭발물 스웜 포대를 가진 전함을 생산합니다.\n\n[ROYAL] +block.revenant-factory.description = 중량의 복합폭약 스워머 포대를 가진 전함을 생산합니다.\n\n[ROYAL] block.dagger-factory.description = 기본 지상 유닛을 생산합니다.\n\n[ROYAL]대거지만 단검으로 공격하진 않습니다. block.crawler-factory.description = 자폭하는 지상 유닛을 생산합니다.\n\n[ROYAL]레일만으로도 막을 수 있습니다. block.titan-factory.description = 화염방사기를 장착한 지상유닛를 생산합니다.\n\n[ROYAL]유닛 상대로 강력한 공격력을 보여줍니다. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 74ec6f6e45..b1d0323598 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -15,7 +15,7 @@ link.wiki.description = Wiki oficial do Mindustry link.feathub.description = Sugira novos conteúdos linkfail = Falha ao abrir o link\nO Url foi copiado para a área de transferência. screenshot = Screenshot salvo para {0} -screenshot.invalid = Mapa grande demais, você pode estar potencialmente sem memória suficiente para captura de tela. +screenshot.invalid = Este mapa é grande demais, você pode estar potencialmente sem memória suficiente para captura de tela. gameover = O núcleo foi destruído. gameover.pvp = O time[accent] {0}[] ganhou! highscore = [YELLOW]Novo recorde! @@ -99,7 +99,7 @@ committingchanges = Enviando mudanças done = Feito feature.unsupported = Seu dispositivo não suporta essa função. -mods.alphainfo = Mantenha em mente que os mods estão em alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry. +mods.alphainfo = Tenha em mente que os mods estão em alpha, e[scarlet] talvez eles contenham erros e instabilidades[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]Nenhum mod encontrado! @@ -136,7 +136,7 @@ noname = Escolha[accent] um nome[] primeiro. filename = Nome do arquivo: unlocked = Novo bloco desbloqueado! completed = [accent]Completado -techtree = Árvore de tecnologia +techtree = Árvore Tecnológica research.list = [LIGHT_GRAY]Pesquise: research = Pesquisar researched = [LIGHT_GRAY]{0} Pesquisado. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 231d54fde9..8f46d63aec 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -936,7 +936,7 @@ block.titanium-wall-large.name = 大型钛墙 block.plastanium-wall.name = 塑钢墙 block.plastanium-wall-large.name = 大型塑钢墙 block.phase-wall.name = 相织布墙 -block.phase-wall-large.name = 大型相织布墙 +block.phase-wall-large.name = 大型相织物墙 block.thorium-wall.name = 钍墙 block.thorium-wall-large.name = 大型钍墙 block.door.name = 门 @@ -961,7 +961,7 @@ block.illuminator.description = 小型、紧凑、可配置的光源。需要能 block.overflow-gate.name = 溢流门 block.underflow-gate.name = 反向溢流门 block.silicon-smelter.name = 硅冶炼厂 -block.phase-weaver.name = 相织布编织器 +block.phase-weaver.name = 相织物编织器 block.pulverizer.name = 粉碎机 block.cryofluidmixer.name = 冷冻液混合器 block.melter.name = 熔炉 @@ -971,7 +971,7 @@ block.separator.name = 分离机 block.coal-centrifuge.name = 煤炭离心机 block.power-node.name = 能量节点 block.power-node-large.name = 大型能量节点 -block.surge-tower.name = 巨浪塔 +block.surge-tower.name = 波动能量塔 block.diode.name = 二极管 block.battery.name = 电池 block.battery-large.name = 大型电池 @@ -1005,7 +1005,7 @@ block.wave.name = 波浪 block.swarmer.name = 蜂群 block.salvo.name = 齐射炮 block.ripple.name = 浪涌 -block.phase-conveyor.name = 相织布传送带桥 +block.phase-conveyor.name = 相织物传送带桥 block.bridge-conveyor.name = 传送带桥 block.plastanium-compressor.name = 塑钢压缩机 block.pyratite-mixer.name = 硫混合器 @@ -1015,7 +1015,7 @@ block.solar-panel-large.name = 大型太阳能板 block.oil-extractor.name = 石油钻井 block.command-center.name = 指挥中心 block.draug-factory.name = 德鲁格采矿机工厂 -block.spirit-factory.name = 魂灵修理机工厂 +block.spirit-factory.name = 神魂修理机工厂 block.phantom-factory.name = 幻影建造机工厂 block.wraith-factory.name = 死灵战机工厂 block.ghoul-factory.name = 食尸鬼轰炸机工厂 @@ -1027,7 +1027,7 @@ block.revenant-factory.name = 亡魂战机工厂 block.repair-point.name = 维修点 block.pulse-conduit.name = 脉冲导管 block.plated-conduit.name = 电镀导管 -block.phase-conduit.name = 相织布导管桥 +block.phase-conduit.name = 相织物导管桥 block.liquid-router.name = 液体路由器 block.liquid-tank.name = 储液罐 block.liquid-junction.name = 液体交叉器 @@ -1062,7 +1062,7 @@ team.orange.name = 橙 team.derelict.name = 灰 team.green.name = 绿 team.purple.name = 紫 -unit.spirit.name = 魂灵修理机 +unit.spirit.name = 神魂修理机 unit.draug.name = 德鲁格采矿机 unit.phantom.name = 幻影建造机 unit.dagger.name = 尖刀 diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index 3a560bb861..00575092f3 100644 Binary files a/core/assets/sprites/block_colors.png and b/core/assets/sprites/block_colors.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 6daeb4a479..1a657a45e8 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -6,2219 +6,2338 @@ filter: Nearest,Nearest repeat: none force-projector-top rotate: false - xy: 1447, 1333 + xy: 685, 1271 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 785, 600 + xy: 1071, 798 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender-top rotate: false - xy: 1315, 317 + xy: 1959, 921 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 785, 534 + xy: 1005, 666 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 1473, 249 + xy: 1969, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 691, 302 + xy: 1731, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 725, 268 + xy: 1731, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 793, 302 + xy: 1765, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 759, 268 + xy: 1765, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 383, 965 + xy: 163, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 383, 965 + xy: 163, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 1, 4 + xy: 1693, 839 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 521, 317 + xy: 1731, 877 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 555, 317 + xy: 1371, 1648 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 1222, 785 + xy: 1765, 877 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 1264, 827 + xy: 1371, 1614 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 1306, 869 + xy: 1799, 877 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 163, 708 + xy: 1833, 881 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 1013, 1422 + xy: 2012, 1941 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 1348, 915 + xy: 1405, 1593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 1386, 953 + xy: 1861, 919 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 35, 4 + xy: 1867, 885 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 589, 317 + xy: 651, 547 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 1222, 751 + xy: 685, 547 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 1420, 953 + xy: 719, 547 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 69, 4 + xy: 753, 547 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 623, 317 + xy: 670, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 1222, 717 + xy: 670, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 1454, 953 + xy: 704, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 657, 317 + xy: 738, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 929, 236 + xy: 1771, 737 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 963, 253 + xy: 1771, 703 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 963, 219 + xy: 1789, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 997, 227 + xy: 1789, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 1031, 225 + xy: 1789, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 1065, 225 + xy: 1789, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 1099, 225 + xy: 1799, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 1133, 225 + xy: 1799, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 1167, 229 + xy: 1799, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 1201, 229 + xy: 1799, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 1235, 229 + xy: 1799, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 997, 193 + xy: 1799, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 1031, 191 + xy: 1821, 775 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 1065, 191 + xy: 1805, 741 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 1099, 191 + xy: 1805, 707 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 1133, 191 + xy: 1839, 741 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 1167, 195 + xy: 1839, 707 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 1201, 195 + xy: 1823, 673 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 1235, 195 + xy: 1823, 639 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0-0 rotate: false - xy: 1373, 385 + xy: 1993, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1-0 rotate: false - xy: 1383, 317 + xy: 1959, 785 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2-0 rotate: false - xy: 1383, 283 + xy: 1993, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-3-0 rotate: false - xy: 1399, 351 + xy: 1941, 751 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-4-0 rotate: false - xy: 1417, 317 + xy: 1941, 717 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-5-0 rotate: false - xy: 1417, 283 + xy: 1975, 747 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-6-0 rotate: false - xy: 1303, 241 + xy: 1975, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-7-0 rotate: false - xy: 1303, 207 + xy: 2009, 747 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 1473, 215 + xy: 1969, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 1473, 181 + xy: 1969, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1473, 147 + xy: 1969, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 1897, 1107 + xy: 2003, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 1897, 1073 + xy: 2003, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 1897, 1039 + xy: 2003, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 1931, 1115 + xy: 2003, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 1931, 1081 + xy: 2003, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1965, 1115 + xy: 2003, 407 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1931, 1047 + xy: 2003, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 1965, 1081 + xy: 2003, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 1999, 1115 + xy: 2003, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 1965, 1047 + xy: 2003, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 1999, 1081 + xy: 806, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1999, 1047 + xy: 806, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1931, 1013 + xy: 840, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1965, 1013 + xy: 806, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 1999, 1013 + xy: 840, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 1340, 847 + xy: 874, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 1177, 541 + xy: 1857, 673 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mass-conveyor rotate: false - xy: 583, 1373 + xy: 1273, 1292 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-conveyor-edge rotate: false - xy: 681, 1373 + xy: 1273, 1194 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-conveyor-top rotate: false - xy: 779, 1358 + xy: 1371, 1235 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-driver-base rotate: false - xy: 583, 1275 + xy: 1567, 1235 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 1349, 317 + xy: 1959, 853 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1349, 283 + xy: 1993, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 1365, 351 + xy: 1959, 819 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 1358, 813 + xy: 840, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blast-drill rotate: false - xy: 1676, 1919 + xy: 323, 931 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 1, 38 + xy: 981, 1597 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 1806, 1919 + xy: 1828, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 825, 1716 + xy: 1147, 1716 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 798, 930 + xy: 807, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 798, 930 + xy: 807, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 423, 413 + xy: 979, 1369 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 423, 315 + xy: 881, 1271 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 457, 217 + xy: 979, 1271 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 1839, 1267 + xy: 1077, 1358 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 864, 666 + xy: 1005, 798 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 719, 600 + xy: 1071, 864 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 719, 534 + xy: 1005, 732 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 681, 1275 + xy: 1371, 1137 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 779, 1260 + xy: 1469, 1137 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 877, 1260 + xy: 1567, 1137 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 975, 1317 + xy: 1665, 1235 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 851, 468 + xy: 1137, 732 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 851, 402 + xy: 1203, 798 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 719, 336 + xy: 1071, 600 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1469, 1169 + xy: 1307, 1062 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 1403, 1037 + xy: 1307, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 1469, 1103 + xy: 1307, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1535, 1169 + xy: 1373, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 555, 283 + xy: 738, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 1101, 365 + xy: 1619, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 1324, 725 + xy: 1595, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 725, 234 + xy: 1833, 813 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 975, 1219 + xy: 1763, 1235 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 725, 302 + xy: 1629, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 725, 302 + xy: 1629, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 691, 268 + xy: 1663, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 759, 302 + xy: 1697, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 793, 268 + xy: 1765, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 861, 302 + xy: 1765, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 827, 268 + xy: 1765, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 861, 268 + xy: 1799, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 861, 268 + xy: 1799, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 861, 268 + xy: 1799, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-6 rotate: false - xy: 861, 268 + xy: 1799, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-5 rotate: false - xy: 691, 234 + xy: 1867, 817 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 759, 234 + xy: 1799, 809 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 793, 234 + xy: 1727, 839 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 827, 234 + xy: 1727, 805 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 861, 234 + xy: 1761, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 861, 234 + xy: 1761, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 895, 270 + xy: 1761, 809 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-5 rotate: false - xy: 929, 270 + xy: 1753, 771 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-6 rotate: false - xy: 895, 236 + xy: 1787, 775 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 1305, 385 + xy: 1901, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 1339, 385 + xy: 1935, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1263, 343 + xy: 1959, 1023 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1297, 351 + xy: 1993, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 1331, 351 + xy: 1935, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-bottom rotate: false - xy: 1937, 1267 + xy: 1175, 1358 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 523, 119 + xy: 1077, 1260 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 523, 21 + xy: 1175, 1260 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 1315, 283 + xy: 1993, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 1269, 241 + xy: 1959, 887 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 1269, 207 + xy: 1993, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 1337, 249 + xy: 2009, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 1337, 215 + xy: 1959, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 1371, 249 + xy: 1959, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 1371, 215 + xy: 1993, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 1405, 249 + xy: 1959, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 1405, 215 + xy: 1993, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-5 rotate: false - xy: 1269, 173 + xy: 1993, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-6 rotate: false - xy: 1303, 173 + xy: 1829, 1091 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 1371, 181 + xy: 1897, 1091 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 1405, 181 + xy: 1855, 1057 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 1439, 249 + xy: 1889, 1057 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 1439, 215 + xy: 1873, 1023 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-5 rotate: false - xy: 1439, 181 + xy: 1873, 989 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-6 rotate: false - xy: 1337, 147 + xy: 1872, 955 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 alpha-mech-pad rotate: false - xy: 583, 1499 + xy: 1273, 1390 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dart-ship-pad rotate: false - xy: 809, 996 + xy: 807, 777 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 delta-mech-pad rotate: false - xy: 875, 996 + xy: 873, 843 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 glaive-ship-pad rotate: false - xy: 423, 609 + xy: 681, 977 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 javelin-ship-pad rotate: false - xy: 864, 798 + xy: 939, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 omega-mech-pad rotate: false - xy: 1073, 1317 + xy: 1665, 1137 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 tau-mech-pad rotate: false - xy: 1271, 1037 + xy: 1861, 1125 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident-ship-pad rotate: false - xy: 1337, 1037 + xy: 1927, 1191 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 battery rotate: false - xy: 1222, 683 + xy: 704, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-full rotate: false - xy: 1222, 683 + xy: 704, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 1291, 1529 + xy: 485, 1150 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-battery-large-full rotate: false - xy: 1291, 1529 + xy: 485, 1150 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 1389, 1529 + xy: 334, 443 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 1488, 953 + xy: 738, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 827, 302 + xy: 1765, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator-liquid rotate: false - xy: 1251, 1333 + xy: 1739, 1333 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-top rotate: false - xy: 1349, 1333 + xy: 587, 1271 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 1177, 507 + xy: 1857, 639 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 1216, 615 + xy: 1867, 503 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor rotate: false - xy: 1215, 1627 + xy: 827, 1471 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-bottom rotate: false - xy: 1345, 1627 + xy: 957, 1467 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-light rotate: false - xy: 1475, 1627 + xy: 1087, 1456 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-0 rotate: false - xy: 1605, 1627 + xy: 1217, 1456 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-1 rotate: false - xy: 1735, 1659 + xy: 1674, 1793 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-2 rotate: false - xy: 1865, 1659 + xy: 1667, 1663 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-3 rotate: false - xy: 293, 575 + xy: 1804, 1789 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 power-source rotate: false - xy: 1337, 181 + xy: 1863, 1091 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 1381, 453 + xy: 1901, 887 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-reactor-center rotate: false - xy: 1465, 1235 + xy: 661, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 1563, 1235 + xy: 783, 1177 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 turbine-generator-top rotate: false - xy: 1403, 1103 + xy: 1927, 1125 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 alloy-smelter rotate: false - xy: 1936, 1951 + xy: 269, 25 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-alloy-smelter-full rotate: false - xy: 1936, 1951 + xy: 269, 25 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 1193, 1529 + xy: 485, 1248 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 479, 1211 + xy: 979, 1205 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-blast-mixer-full rotate: false - xy: 479, 1211 + xy: 979, 1205 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 743, 1062 + xy: 741, 779 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 809, 1128 + xy: 741, 713 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 875, 1194 + xy: 741, 647 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 809, 1062 + xy: 741, 581 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 875, 1128 + xy: 807, 909 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 875, 1062 + xy: 873, 909 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 864, 732 + xy: 939, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 864, 732 + xy: 939, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 719, 402 + xy: 1137, 798 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 785, 468 + xy: 1203, 864 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 851, 534 + xy: 1005, 600 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 785, 402 + xy: 1071, 666 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 1371, 147 + xy: 1907, 1023 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 1405, 147 + xy: 1907, 989 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 1439, 147 + xy: 1906, 955 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1073, 1021 + xy: 1269, 798 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 1139, 1153 + xy: 1269, 732 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1139, 1021 + xy: 1269, 600 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 1205, 1169 + xy: 1269, 534 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 1205, 1103 + xy: 1903, 1389 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1271, 1169 + xy: 1969, 1395 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 1205, 1037 + xy: 1861, 1323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 1271, 1103 + xy: 1861, 1257 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +rock1 + rotate: false + xy: 1493, 829 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +rock2 + rotate: false + xy: 1543, 879 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +sand-boulder1 + rotate: false + xy: 1901, 853 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-boulder2 + rotate: false + xy: 1901, 819 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale-boulder1 + rotate: false + xy: 1969, 441 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale-boulder2 + rotate: false + xy: 1969, 407 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +snowrock1 + rotate: false + xy: 1543, 829 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +snowrock2 + rotate: false + xy: 1593, 879 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +spore-cluster1 + rotate: false + xy: 1697, 911 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +spore-cluster2 + rotate: false + xy: 1739, 911 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +spore-cluster3 + rotate: false + xy: 1781, 911 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +white-tree + rotate: false + xy: 1, 903 + size: 320, 320 + orig: 320, 320 + offset: 0, 0 + index: -1 +white-tree-dead + rotate: false + xy: 825, 1727 + size: 320, 320 + orig: 320, 320 + offset: 0, 0 + index: -1 unloader-center rotate: false - xy: 1358, 779 + xy: 874, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 941, 1226 + xy: 1371, 1682 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 1522, 953 + xy: 670, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 479, 1145 + xy: 1837, 1389 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 1487, 1529 + xy: 432, 443 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 819, 1586 + xy: 219, 773 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 930, 671 + xy: 783, 1523 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 798, 666 + xy: 1005, 864 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 293, 315 + xy: 1667, 1533 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 1171, 1235 + xy: 619, 345 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 941, 1153 + xy: 1137, 600 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 941, 1087 + xy: 1203, 666 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 1007, 1153 + xy: 1203, 600 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 1407, 385 + xy: 1969, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 1535, 1103 + xy: 1439, 1071 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 command-center rotate: false - xy: 653, 549 + xy: 609, 715 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 crawler-factory rotate: false - xy: 743, 1128 + xy: 741, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dagger-factory rotate: false - xy: 743, 1128 + xy: 741, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 draug-factory rotate: false - xy: 743, 1128 + xy: 741, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phantom-factory rotate: false - xy: 743, 1128 + xy: 741, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spirit-factory rotate: false - xy: 743, 1128 + xy: 741, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wraith-factory rotate: false - xy: 743, 1128 + xy: 741, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 crawler-factory-top rotate: false - xy: 809, 1194 + xy: 741, 845 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dagger-factory-top rotate: false - xy: 743, 996 + xy: 807, 843 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 draug-factory-top rotate: false - xy: 732, 864 + xy: 873, 777 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-factory rotate: false - xy: 1545, 1333 + xy: 783, 1275 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 fortress-factory-top rotate: false - xy: 1643, 1333 + xy: 681, 1173 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ghoul-factory-top rotate: false - xy: 1643, 1333 + xy: 681, 1173 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory-top rotate: false - xy: 1643, 1333 + xy: 681, 1173 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 titan-factory-top rotate: false - xy: 1643, 1333 + xy: 681, 1173 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ghoul-factory rotate: false - xy: 436, 707 + xy: 583, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 423, 511 + xy: 881, 1369 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phantom-factory-top rotate: false - xy: 851, 600 + xy: 1071, 732 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rally-point rotate: false - xy: 785, 336 + xy: 1137, 666 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 1381, 487 + xy: 1923, 1057 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 revenant-factory rotate: false - xy: 665, 1471 + xy: 1797, 1529 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 revenant-factory-top rotate: false - xy: 795, 1456 + xy: 349, 541 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spirit-factory-top rotate: false - xy: 1139, 1087 + xy: 1269, 666 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-factory rotate: false - xy: 1661, 1235 + xy: 881, 1173 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 wraith-factory-top rotate: false - xy: 1601, 1169 + xy: 1373, 939 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 732, 930 + xy: 807, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 1177, 473 + xy: 1857, 605 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 insulator-wall rotate: false - xy: 1250, 615 + xy: 1867, 469 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 insulator-wall-large rotate: false - xy: 798, 732 + xy: 939, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 1269, 1235 + xy: 619, 247 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 1367, 1235 + xy: 619, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 1007, 1087 + xy: 1071, 534 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 1073, 1153 + xy: 1137, 534 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 1007, 1021 + xy: 1203, 534 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1073, 1087 + xy: 1269, 864 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 1433, 351 + xy: 1969, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 1451, 317 + xy: 1969, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 1451, 283 + xy: 1969, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 1451, 283 + xy: 1969, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bullet rotate: false - xy: 1995, 1897 + xy: 1371, 1336 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 1995, 1843 + xy: 1958, 1921 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 204, 965 + xy: 1959, 593 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 circle-end rotate: false - xy: 334, 764 + xy: 485, 1346 size: 100, 199 orig: 100, 199 offset: 0, 0 index: -1 circle-mid rotate: false - xy: 2045, 1642 + xy: 2046, 1848 size: 1, 199 orig: 1, 199 offset: 0, 0 index: -1 circle-shadow rotate: false - xy: 1, 780 + xy: 1, 458 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 error rotate: false - xy: 1080, 921 + xy: 1993, 1245 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser rotate: false - xy: 1079, 1666 + xy: 577, 1100 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 laser-end rotate: false - xy: 1759, 1259 + xy: 485, 1076 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser rotate: false - xy: 1245, 1365 + xy: 1855, 1339 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 477, 1277 + xy: 1837, 1455 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 1028, 1849 + xy: 1350, 1849 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 163, 742 + xy: 163, 420 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 particle rotate: false - xy: 1306, 903 + xy: 1830, 953 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 819, 1721 + xy: 1911, 1455 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 shell rotate: false - xy: 975, 1418 + xy: 1823, 915 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 1348, 949 + xy: 1693, 873 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 transfer rotate: false - xy: 1833, 1283 + xy: 1667, 1837 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 1374, 847 + xy: 874, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 1600, 1038 + xy: 418, 438 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 arc rotate: false - xy: 349, 965 + xy: 939, 941 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 1556, 954 + xy: 704, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 219, 1095 + xy: 219, 643 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +block-block-forge-full + rotate: false + xy: 587, 1467 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-forge + rotate: false + xy: 587, 1467 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-block-launcher-full + rotate: false + xy: 587, 1369 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-launcher + rotate: false + xy: 587, 1369 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-bridge-conduit-full rotate: false - xy: 555, 249 + xy: 717, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 555, 249 + xy: 717, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-full rotate: false - xy: 589, 283 + xy: 717, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 589, 283 + xy: 717, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 623, 283 + xy: 717, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliff-full rotate: false - xy: 589, 249 + xy: 717, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 657, 283 + xy: 717, 275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-full rotate: false - xy: 479, 1079 + xy: 779, 1111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 479, 1079 + xy: 779, 1111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-combustion-generator-full rotate: false - xy: 623, 249 + xy: 717, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 623, 249 + xy: 717, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 657, 249 + xy: 717, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-container-full rotate: false - xy: 479, 1013 + xy: 779, 1045 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 container rotate: false - xy: 479, 1013 + xy: 779, 1045 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 1590, 954 + xy: 717, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 1590, 954 + xy: 717, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-full rotate: false - xy: 1348, 881 + xy: 751, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 1348, 881 + xy: 751, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-large-full rotate: false - xy: 131, 4 + xy: 779, 979 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 131, 4 + xy: 779, 979 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-core-foundation-full rotate: false - xy: 219, 965 + xy: 204, 513 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 219, 965 + xy: 204, 513 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2239,1610 +2358,1610 @@ core-nucleus index: -1 block-core-shard-full rotate: false - xy: 1585, 1529 + xy: 685, 1467 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard rotate: false - xy: 1585, 1529 + xy: 685, 1467 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 1841, 1175 + xy: 751, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 545, 1209 + xy: 1911, 1461 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 611, 1209 + xy: 1977, 1461 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 1683, 1529 + xy: 685, 1369 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 1875, 1175 + xy: 751, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-1-full rotate: false - xy: 1909, 1183 + xy: 751, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-2-full rotate: false - xy: 1943, 1183 + xy: 751, 275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-3-full rotate: false - xy: 1977, 1183 + xy: 751, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-4-full rotate: false - xy: 2011, 1183 + xy: 751, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-5-full rotate: false - xy: 1833, 1141 + xy: 751, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-6-full rotate: false - xy: 1867, 1141 + xy: 772, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 1659, 1135 + xy: 772, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-tainted-water-full rotate: false - xy: 1693, 1143 + xy: 772, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-water-full rotate: false - xy: 1727, 1143 + xy: 785, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-deepwater-full rotate: false - xy: 1659, 1101 + xy: 785, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-differential-generator-full rotate: false - xy: 1781, 1561 + xy: 530, 443 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator rotate: false - xy: 1781, 1561 + xy: 530, 443 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-diode-full rotate: false - xy: 1693, 1109 + xy: 785, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode rotate: false - xy: 1693, 1109 + xy: 785, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-distributor-full rotate: false - xy: 545, 1143 + xy: 979, 1139 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 distributor rotate: false - xy: 545, 1143 + xy: 979, 1139 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-door-full rotate: false - xy: 1727, 1109 + xy: 785, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door rotate: false - xy: 1727, 1109 + xy: 785, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-door-large-full rotate: false - xy: 677, 1209 + xy: 1045, 1194 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large rotate: false - xy: 677, 1209 + xy: 1045, 1194 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 1761, 1117 + xy: 785, 275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 1795, 1117 + xy: 785, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-force-projector-full rotate: false - xy: 1879, 1561 + xy: 367, 25 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector rotate: false - xy: 1879, 1561 + xy: 367, 25 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-fuse-full rotate: false - xy: 1055, 1415 + xy: 783, 1373 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-graphite-press-full rotate: false - xy: 611, 1143 + xy: 1111, 1194 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 611, 1143 + xy: 1111, 1194 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 1829, 1107 + xy: 785, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-full rotate: false - xy: 1153, 1415 + xy: 423, 345 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 1863, 1107 + xy: 785, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1080, 637 + xy: 1693, 805 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1114, 637 + xy: 759, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1148, 637 + xy: 759, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1075, 603 + xy: 759, 71 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1075, 569 + xy: 793, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1109, 603 + xy: 793, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-illuminator-full rotate: false - xy: 1075, 535 + xy: 793, 71 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 1075, 535 + xy: 793, 71 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-full rotate: false - xy: 204, 835 + xy: 1111, 1586 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-incinerator-full rotate: false - xy: 1109, 569 + xy: 765, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 incinerator rotate: false - xy: 1109, 569 + xy: 765, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-inverted-sorter-full rotate: false - xy: 1143, 603 + xy: 765, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 1143, 603 + xy: 765, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-source-full rotate: false - xy: 1075, 501 + xy: 799, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 1075, 501 + xy: 799, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-void-full rotate: false - xy: 1109, 535 + xy: 799, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1109, 535 + xy: 799, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-junction-full rotate: false - xy: 1143, 569 + xy: 1685, 771 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 1143, 569 + xy: 1685, 771 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-kiln-full rotate: false - xy: 545, 1077 + xy: 1177, 1194 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln rotate: false - xy: 545, 1077 + xy: 1177, 1194 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 677, 1143 + xy: 1045, 1128 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 1251, 1431 + xy: 423, 247 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-launch-pad-full rotate: false - xy: 1349, 1431 + xy: 521, 345 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad rotate: false - xy: 1349, 1431 + xy: 521, 345 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-launch-pad-large-full rotate: false - xy: 349, 1129 + xy: 349, 801 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 349, 1129 + xy: 349, 801 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-liquid-junction-full rotate: false - xy: 1075, 467 + xy: 1585, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1075, 467 + xy: 1585, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 1109, 501 + xy: 1585, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-source-full rotate: false - xy: 1143, 535 + xy: 1585, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 1143, 535 + xy: 1585, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-full rotate: false - xy: 1447, 1431 + xy: 423, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-liquid-void-full rotate: false - xy: 1109, 467 + xy: 1585, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 1109, 467 + xy: 1585, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 1143, 501 + xy: 1527, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mass-conveyor-full rotate: false - xy: 1545, 1431 + xy: 521, 247 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-conveyor-icon rotate: false - xy: 1545, 1431 + xy: 521, 247 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mass-driver-full rotate: false - xy: 1643, 1431 + xy: 521, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 611, 1077 + xy: 1111, 1128 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-mechanical-pump-full rotate: false - xy: 1143, 467 + xy: 1527, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 1143, 467 + xy: 1527, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 349, 999 + xy: 349, 671 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-melter-full rotate: false - xy: 1182, 643 + xy: 1527, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1182, 643 + xy: 1527, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mend-projector-full rotate: false - xy: 677, 1077 + xy: 1177, 1128 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 677, 1077 + xy: 1177, 1128 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-mender-full rotate: false - xy: 1067, 429 + xy: 1527, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender rotate: false - xy: 1067, 429 + xy: 1527, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-message-full rotate: false - xy: 1067, 395 + xy: 1527, 417 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 1067, 395 + xy: 1527, 417 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-2-full rotate: false - xy: 1101, 433 + xy: 1635, 745 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-3-full rotate: false - xy: 1101, 399 + xy: 1669, 737 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-5-full rotate: false - xy: 1135, 433 + xy: 1635, 711 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 1135, 399 + xy: 1669, 703 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-full rotate: false - xy: 1067, 361 + xy: 1619, 677 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1135, 365 + xy: 1619, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-multi-press-full rotate: false - xy: 1741, 1431 + xy: 465, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multi-press rotate: false - xy: 1741, 1431 + xy: 465, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 1839, 1463 + xy: 563, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 1009, 295 + xy: 1653, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 1256, 785 + xy: 1653, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 1256, 751 + xy: 1653, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 1256, 717 + xy: 1619, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 1256, 683 + xy: 1653, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 1298, 827 + xy: 1703, 737 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-overdrive-projector-full rotate: false - xy: 545, 1011 + xy: 1243, 1128 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 545, 1011 + xy: 1243, 1128 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-overflow-gate-full rotate: false - xy: 1290, 793 + xy: 1703, 703 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 1290, 793 + xy: 1703, 703 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1290, 759 + xy: 1687, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-conduit-full rotate: false - xy: 1290, 725 + xy: 1687, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1290, 725 + xy: 1687, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-conveyor-full rotate: false - xy: 1290, 691 + xy: 1687, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 1290, 691 + xy: 1687, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-wall-full rotate: false - xy: 1909, 1149 + xy: 1687, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 1909, 1149 + xy: 1687, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-wall-large-full rotate: false - xy: 611, 1011 + xy: 845, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 611, 1011 + xy: 845, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 677, 1011 + xy: 911, 1107 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pine-full rotate: false - xy: 1941, 1217 + xy: 665, 1 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-plastanium-compressor-full rotate: false - xy: 534, 945 + xy: 845, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 534, 945 + xy: 845, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plastanium-conveyor-full rotate: false - xy: 1943, 1149 + xy: 1719, 771 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plastanium-wall-full rotate: false - xy: 1977, 1149 + xy: 1721, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 1977, 1149 + xy: 1721, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plastanium-wall-large-full rotate: false - xy: 534, 879 + xy: 911, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 534, 879 + xy: 911, 1041 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 2011, 1149 + xy: 1721, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 600, 945 + xy: 977, 1073 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-power-node-full rotate: false - xy: 1601, 1077 + xy: 1721, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node rotate: false - xy: 1601, 1077 + xy: 1721, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-node-large-full rotate: false - xy: 534, 813 + xy: 845, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 534, 813 + xy: 845, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-power-source-full rotate: false - xy: 1600, 1043 + xy: 1721, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-void-full rotate: false - xy: 1605, 1009 + xy: 1737, 737 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1605, 1009 + xy: 1737, 737 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1693, 1075 + xy: 1737, 703 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1727, 1075 + xy: 1755, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pyratite-mixer-full rotate: false - xy: 666, 945 + xy: 911, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 666, 945 + xy: 911, 975 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 1761, 1083 + xy: 1755, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-full rotate: false - xy: 1937, 1463 + xy: 1934, 1821 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-rock-full rotate: false - xy: 1991, 1217 + xy: 715, 1 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 1795, 1083 + xy: 1755, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rotary-pump-full rotate: false - xy: 600, 879 + xy: 977, 1007 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 600, 879 + xy: 977, 1007 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-router-full rotate: false - xy: 1829, 1073 + xy: 1755, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 1829, 1073 + xy: 1755, 567 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rtg-generator-full rotate: false - xy: 534, 747 + xy: 1043, 1062 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 534, 747 + xy: 1043, 1062 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-salt-full rotate: false - xy: 1863, 1073 + xy: 1833, 847 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 1169, 433 + xy: 1867, 851 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 666, 879 + xy: 1109, 1062 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 1169, 399 + xy: 1561, 559 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 1169, 365 + xy: 1561, 525 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-water-full rotate: false - xy: 1009, 261 + xy: 1561, 491 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1025, 345 + xy: 1561, 457 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 600, 813 + xy: 1175, 1062 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 1324, 793 + xy: 1561, 423 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 1324, 759 + xy: 1595, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 1324, 759 + xy: 1595, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-gigantic-full rotate: false - xy: 955, 1716 + xy: 1277, 1716 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 955, 1716 + xy: 1277, 1716 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-scrap-wall-huge-full rotate: false - xy: 1839, 1365 + xy: 1934, 1723 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 1839, 1365 + xy: 1934, 1723 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 666, 813 + xy: 1241, 1062 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-separator-full rotate: false - xy: 600, 747 + xy: 1043, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 600, 747 + xy: 1043, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 1324, 691 + xy: 1595, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 1290, 657 + xy: 1595, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 1324, 657 + xy: 1595, 405 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shock-mine-full rotate: false - xy: 1761, 1049 + xy: 1561, 389 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 1795, 1049 + xy: 1595, 371 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-silicon-smelter-full rotate: false - xy: 666, 747 + xy: 1109, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 666, 747 + xy: 1109, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-slag-full rotate: false - xy: 1829, 1039 + xy: 1629, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-full rotate: false - xy: 1863, 1039 + xy: 1629, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-pine-full rotate: false - xy: 1995, 1643 + xy: 1679, 1087 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 1977, 1593 + xy: 1335, 568 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrocks-full rotate: false - xy: 1059, 327 + xy: 1663, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-full rotate: false - xy: 1043, 293 + xy: 1629, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 1043, 293 + xy: 1629, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-large-full rotate: false - xy: 1937, 1365 + xy: 1927, 1625 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 solar-panel-large rotate: false - xy: 1937, 1365 + xy: 1927, 1625 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-sorter-full rotate: false - xy: 1043, 259 + xy: 1663, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 1043, 259 + xy: 1663, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spawn-full rotate: false - xy: 1077, 293 + xy: 1697, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spectre-full rotate: false - xy: 949, 1586 + xy: 1241, 1586 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 392, 722 + xy: 609, 541 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 1077, 259 + xy: 1629, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-pine-full rotate: false - xy: 941, 971 + xy: 1729, 1087 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 534, 681 + xy: 1175, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sporerocks-full rotate: false - xy: 1093, 327 + xy: 1663, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 1127, 331 + xy: 1697, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-surge-tower-full rotate: false - xy: 600, 681 + xy: 1241, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-tower rotate: false - xy: 600, 681 + xy: 1241, 996 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-surge-wall-full rotate: false - xy: 1161, 331 + xy: 1731, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 1161, 331 + xy: 1731, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-surge-wall-large-full rotate: false - xy: 666, 681 + xy: 977, 941 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 666, 681 + xy: 977, 941 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 521, 615 + xy: 1043, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tainted-water-full rotate: false - xy: 1111, 293 + xy: 1629, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tar-full rotate: false - xy: 1111, 259 + xy: 1663, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 1145, 297 + xy: 1697, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thermal-generator-full rotate: false - xy: 521, 549 + xy: 1109, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 521, 549 + xy: 1109, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-thermal-pump-full rotate: false - xy: 131, 70 + xy: 1927, 1527 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 131, 70 + xy: 1927, 1527 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-thorium-reactor-full rotate: false - xy: 163, 217 + xy: 1347, 1488 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor rotate: false - xy: 163, 217 + xy: 1347, 1488 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-thorium-wall-full rotate: false - xy: 1145, 263 + xy: 1731, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 1145, 263 + xy: 1731, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thorium-wall-large-full rotate: false - xy: 587, 615 + xy: 1175, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 587, 615 + xy: 1175, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-thruster-full rotate: false - xy: 1085, 1757 + xy: 1407, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 thruster rotate: false - xy: 1085, 1757 + xy: 1407, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 1179, 297 + xy: 1663, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 1179, 297 + xy: 1663, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-wall-full rotate: false - xy: 1179, 263 + xy: 1697, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 1179, 263 + xy: 1697, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-wall-large-full rotate: false - xy: 521, 483 + xy: 1241, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 521, 483 + xy: 1241, 930 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-turbine-generator-full rotate: false - xy: 653, 615 + xy: 609, 913 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator rotate: false - xy: 653, 615 + xy: 609, 913 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-underflow-gate-full rotate: false - xy: 1195, 331 + xy: 1731, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-unloader-full rotate: false - xy: 1213, 297 + xy: 1697, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader rotate: false - xy: 1213, 297 + xy: 1697, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-vault-full rotate: false - xy: 261, 217 + xy: 1445, 1529 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 vault rotate: false - xy: 261, 217 + xy: 1445, 1529 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 587, 549 + xy: 609, 847 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-full rotate: false - xy: 1213, 263 + xy: 1731, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 521, 417 + xy: 609, 781 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3863,224 +3982,224 @@ block-white-tree-full index: -1 cracks-1-0 rotate: false - xy: 1634, 1043 + xy: 1823, 605 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 1639, 1009 + xy: 1823, 571 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 1624, 975 + xy: 1833, 537 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 1624, 941 + xy: 1833, 503 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 1658, 975 + xy: 1833, 469 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 1658, 941 + xy: 1833, 435 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 1182, 609 + xy: 1833, 401 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 1177, 575 + xy: 1833, 367 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 587, 483 + xy: 609, 649 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 521, 351 + xy: 609, 583 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 653, 483 + xy: 675, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 587, 417 + xy: 675, 845 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 653, 417 + xy: 675, 779 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 587, 351 + xy: 675, 713 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 653, 351 + xy: 675, 647 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 743, 1194 + xy: 675, 581 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 359, 217 + xy: 1543, 1529 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 229, 119 + xy: 1445, 1431 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 327, 119 + xy: 1543, 1431 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 229, 21 + xy: 1347, 1390 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 327, 21 + xy: 1641, 1435 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 425, 119 + xy: 1445, 1333 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 425, 21 + xy: 1543, 1333 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 485, 1449 + xy: 1641, 1337 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 1605, 1757 + xy: 479, 671 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 1735, 1789 + xy: 204, 383 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 1865, 1789 + xy: 163, 253 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 204, 705 + xy: 163, 123 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 163, 575 + xy: 1407, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 163, 445 + xy: 1537, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 163, 315 + xy: 293, 253 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 1085, 1627 + xy: 293, 123 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -4094,98 +4213,98 @@ cracks-5-0 index: -1 cracks-5-1 rotate: false - xy: 1028, 1887 + xy: 1350, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-2 rotate: false - xy: 1, 618 + xy: 1, 296 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-3 rotate: false - xy: 1190, 1887 + xy: 323, 1223 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-4 rotate: false - xy: 1, 456 + xy: 665, 1565 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-5 rotate: false - xy: 1352, 1887 + xy: 1512, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-6 rotate: false - xy: 1, 294 + xy: 1, 134 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-7 rotate: false - xy: 1514, 1887 + xy: 323, 1061 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cyclone rotate: false - xy: 485, 1351 + xy: 1739, 1431 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 duo rotate: false - xy: 1222, 649 + xy: 1857, 571 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fuse rotate: false - xy: 1741, 1333 + xy: 681, 1075 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hail rotate: false - xy: 1256, 649 + xy: 1867, 537 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 1025, 421 + xy: 1543, 687 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 1324, 623 + xy: 1867, 401 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 323, 1233 + xy: 323, 905 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -4199,1190 +4318,1190 @@ item-blast-compound-tiny index: -1 item-blast-compound-xlarge rotate: false - xy: 1130, 921 + xy: 1443, 648 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 1025, 379 + xy: 1593, 737 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 1250, 581 + xy: 1855, 779 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 1676, 1893 + xy: 423, 123 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 521, 1547 + xy: 1595, 575 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 980, 721 + xy: 1385, 589 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 155, 175 + xy: 1643, 787 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 1211, 513 + xy: 1873, 711 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 1735, 1633 + xy: 1641, 1601 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 539, 1547 + xy: 1855, 1039 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 1030, 763 + xy: 1385, 539 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 975, 329 + xy: 783, 1481 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 1211, 479 + xy: 1891, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 1781, 1535 + xy: 583, 953 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 557, 1547 + xy: 521, 1547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 1080, 821 + xy: 1385, 489 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 967, 287 + xy: 1543, 645 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 1245, 479 + xy: 1891, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 583, 1473 + xy: 1641, 1575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 1055, 1568 + xy: 539, 1547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 1130, 871 + xy: 1993, 1087 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 1180, 929 + xy: 1493, 587 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 1318, 589 + xy: 1901, 507 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 197, 44 + xy: 1641, 1549 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 1759, 1241 + xy: 557, 1547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 1080, 771 + xy: 1443, 598 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 1180, 887 + xy: 1485, 545 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 1318, 555 + xy: 1901, 439 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 551, 1325 + xy: 1243, 1234 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 2027, 1625 + xy: 1941, 1039 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 1130, 821 + xy: 1435, 548 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1180, 845 + xy: 1485, 503 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 1279, 487 + xy: 1901, 371 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1936, 1925 + xy: 392, 417 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 1066, 1869 + xy: 1941, 1021 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 1130, 771 + xy: 1435, 498 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1180, 803 + xy: 1485, 461 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 1313, 487 + xy: 1907, 749 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1977, 1567 + xy: 1371, 1588 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 417, 981 + xy: 1941, 1003 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 1030, 713 + xy: 1435, 448 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 1180, 761 + xy: 628, 499 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 1313, 453 + xy: 1925, 681 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 197, 191 + xy: 1931, 1099 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 1761, 1159 + xy: 1941, 985 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 1080, 721 + xy: 1505, 1029 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 1180, 719 + xy: 628, 457 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 1352, 555 + xy: 1925, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 103, 12 + xy: 806, 451 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 895, 318 + xy: 559, 1132 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 1130, 721 + xy: 1555, 1029 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 1180, 677 + xy: 1543, 603 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 1347, 487 + xy: 1925, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 555, 223 + xy: 908, 553 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 1635, 1093 + xy: 1837, 1371 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 1783, 1151 + xy: 1605, 1029 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 1222, 945 + xy: 1485, 419 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 1211, 445 + xy: 1935, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1358, 753 + xy: 1243, 1208 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1605, 991 + xy: 1425, 1372 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 917, 304 + xy: 1655, 1029 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 1222, 903 + xy: 1705, 995 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 1203, 411 + xy: 1935, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1702, 1893 + xy: 392, 391 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 1761, 1641 + xy: 1388, 1869 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 1205, 987 + xy: 1705, 1037 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1264, 945 + xy: 1747, 995 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 1237, 411 + xy: 1935, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1807, 1535 + xy: 832, 451 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 2003, 1575 + xy: 2012, 1923 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 1255, 987 + xy: 1755, 1037 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 1222, 861 + xy: 1789, 995 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 1229, 343 + xy: 1867, 333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 609, 1473 + xy: 908, 527 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 1358, 735 + xy: 717, 155 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 1305, 987 + xy: 1805, 1037 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 732, 666 + xy: 939, 545 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 1264, 903 + xy: 1831, 995 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 1313, 419 + xy: 1935, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 197, 18 + xy: 858, 451 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 551, 1281 + xy: 787, 563 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1505, 987 + xy: 1654, 979 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 1306, 945 + xy: 1704, 953 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 1271, 385 + xy: 1993, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 551, 1299 + xy: 908, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 607, 231 + xy: 583, 935 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 1555, 988 + xy: 1497, 929 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 1222, 819 + xy: 1746, 953 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 1247, 275 + xy: 1993, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1962, 1925 + xy: 884, 451 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 1055, 1550 + xy: 908, 483 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 980, 671 + xy: 1547, 929 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1264, 861 + xy: 1788, 953 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 1281, 275 + xy: 1993, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 581, 223 + xy: 934, 519 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 2027, 1607 + xy: 960, 527 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 1030, 663 + xy: 1597, 929 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 877, 1358 + xy: 1469, 1235 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 meltdown rotate: false - xy: 293, 445 + xy: 1797, 1659 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 repair-point rotate: false - xy: 1381, 521 + xy: 1895, 921 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple rotate: false - xy: 1073, 1219 + xy: 1763, 1137 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 851, 336 + xy: 1203, 732 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 941, 1021 + xy: 1005, 534 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch rotate: false - xy: 1381, 419 + xy: 1923, 785 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spectre rotate: false - xy: 925, 1456 + xy: 479, 541 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1337, 1169 + xy: 1861, 1191 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 975, 371 + xy: 1493, 679 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-vanguard-full rotate: false - xy: 1025, 613 + xy: 1543, 729 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wave rotate: false - xy: 1469, 1037 + xy: 1373, 1005 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 1290, 623 + xy: 1867, 435 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 1216, 581 + xy: 1867, 367 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 1211, 547 + xy: 1873, 745 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 1245, 547 + xy: 1891, 677 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 1245, 513 + xy: 1891, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 1284, 589 + xy: 1901, 541 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 1284, 555 + xy: 1901, 473 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 1279, 521 + xy: 1901, 405 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 1313, 521 + xy: 1889, 783 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 1279, 453 + xy: 1907, 715 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 1352, 589 + xy: 1959, 1091 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 1347, 521 + xy: 1925, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 1347, 453 + xy: 1935, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1245, 445 + xy: 1935, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1203, 377 + xy: 1935, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1237, 377 + xy: 1833, 333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 1279, 419 + xy: 1901, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1347, 419 + xy: 1959, 1057 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 1247, 309 + xy: 1959, 989 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1281, 309 + xy: 1959, 955 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 1, 1 + xy: 1371, 1333 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 circle rotate: false - xy: 825, 1846 + xy: 1147, 1846 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 shape-3 rotate: false - xy: 1535, 1038 + xy: 1439, 1006 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 1995, 1793 + xy: 465, 1 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-base rotate: false - xy: 1995, 1743 + xy: 515, 1 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-leg rotate: false - xy: 1995, 1693 + xy: 565, 1 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chaos-array rotate: false - xy: 1215, 1757 + xy: 1537, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-base rotate: false - xy: 1345, 1757 + xy: 453, 931 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-leg rotate: false - xy: 1475, 1757 + xy: 479, 801 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 crawler rotate: false - xy: 1091, 971 + xy: 1393, 839 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 1141, 971 + xy: 1393, 789 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 930, 921 + xy: 1393, 739 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 930, 871 + xy: 1393, 689 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 980, 921 + xy: 1443, 898 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 930, 821 + xy: 1443, 848 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dart rotate: false - xy: 980, 871 + xy: 1443, 798 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta rotate: false - xy: 1030, 921 + xy: 1443, 748 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-base rotate: false - xy: 930, 771 + xy: 1443, 698 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-leg rotate: false - xy: 980, 821 + xy: 1993, 1345 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug rotate: false - xy: 1030, 871 + xy: 1993, 1295 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 eradicator rotate: false - xy: 323, 1259 + xy: 827, 1601 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-base rotate: false - xy: 665, 1601 + xy: 1674, 1923 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-leg rotate: false - xy: 1, 168 + xy: 1, 8 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eruptor rotate: false - xy: 732, 798 + xy: 873, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-base rotate: false - xy: 798, 864 + xy: 873, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-leg rotate: false - xy: 864, 930 + xy: 807, 579 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress rotate: false - xy: 732, 732 + xy: 873, 579 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 798, 798 + xy: 939, 875 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-base rotate: false - xy: 798, 798 + xy: 939, 875 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 864, 864 + xy: 939, 809 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ghoul rotate: false - xy: 1171, 1341 + xy: 1958, 1975 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 glaive rotate: false - xy: 334, 706 + xy: 334, 385 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 javelin rotate: false - xy: 1355, 987 + xy: 1504, 979 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-shield rotate: false - xy: 1405, 987 + xy: 1554, 979 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lich rotate: false - xy: 1, 983 + xy: 1, 661 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 omega rotate: false - xy: 1601, 1111 + xy: 1309, 1136 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-armor rotate: false - xy: 719, 468 + xy: 1137, 864 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 omega-base rotate: false - xy: 1667, 1177 + xy: 1505, 1079 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-leg rotate: false - xy: 917, 470 + xy: 1439, 948 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 phantom rotate: false - xy: 917, 412 + xy: 1335, 734 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 917, 354 + xy: 1563, 1079 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5396,189 +5515,189 @@ reaper index: -1 revenant rotate: false - xy: 1079, 1513 + xy: 155, 9 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 spirit rotate: false - xy: 975, 571 + xy: 1493, 729 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau rotate: false - xy: 1725, 1177 + xy: 1335, 676 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-base rotate: false - xy: 975, 471 + xy: 1593, 829 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau-leg rotate: false - xy: 975, 421 + xy: 1643, 879 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titan rotate: false - xy: 1337, 1103 + xy: 1927, 1323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-leg rotate: false - xy: 1403, 1169 + xy: 1927, 1257 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident rotate: false - xy: 1783, 1201 + xy: 1621, 1079 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 vanguard rotate: false - xy: 1025, 563 + xy: 1593, 779 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wraith rotate: false - xy: 1025, 463 + xy: 1493, 629 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery-equip rotate: false - xy: 1841, 1209 + xy: 1335, 618 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 blaster-equip rotate: false - xy: 1891, 1217 + xy: 615, 1 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bomber-equip rotate: false - xy: 991, 971 + xy: 1779, 1087 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-equip rotate: false - xy: 991, 971 + xy: 1779, 1087 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chain-blaster-equip rotate: false - xy: 1041, 971 + xy: 1393, 889 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chaos-equip rotate: false - xy: 917, 528 + xy: 1335, 792 size: 56, 136 orig: 56, 136 offset: 0, 0 index: -1 eradication-equip rotate: false - xy: 436, 805 + xy: 583, 1077 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 eruption-equip rotate: false - xy: 930, 713 + xy: 1993, 1187 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun-equip rotate: false - xy: 980, 771 + xy: 1993, 1137 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower-equip rotate: false - xy: 1030, 813 + xy: 1335, 510 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-blaster-equip rotate: false - xy: 1080, 871 + xy: 1393, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lich-missiles-equip rotate: false - xy: 1455, 987 + xy: 1604, 979 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 reaper-gun-equip rotate: false - xy: 1080, 671 + xy: 1647, 929 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 revenant-missiles-equip rotate: false - xy: 1130, 671 + xy: 1493, 879 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 975, 621 + xy: 1493, 779 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 swarmer-equip rotate: false - xy: 975, 521 + xy: 1543, 779 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-blaster-equip rotate: false - xy: 1025, 513 + xy: 1643, 829 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5591,1460 +5710,1369 @@ filter: Nearest,Nearest repeat: none char1 rotate: false - xy: 589, 107 + xy: 1281, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char2 rotate: false - xy: 415, 59 + xy: 1315, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char3 rotate: false - xy: 449, 59 + xy: 1349, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliff rotate: false - xy: 483, 59 + xy: 1383, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs1 rotate: false - xy: 517, 59 + xy: 1417, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal1 rotate: false - xy: 551, 59 + xy: 1451, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal2 rotate: false - xy: 1429, 217 + xy: 1485, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal3 rotate: false - xy: 1495, 283 + xy: 1519, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper1 rotate: false - xy: 1593, 381 + xy: 1553, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper2 rotate: false - xy: 1463, 217 + xy: 1587, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper3 rotate: false - xy: 1593, 347 + xy: 1621, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters1 rotate: false - xy: 645, 185 + xy: 1655, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters2 rotate: false - xy: 679, 185 + xy: 1689, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters3 rotate: false - xy: 713, 185 + xy: 1723, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters4 rotate: false - xy: 747, 185 + xy: 1757, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters5 rotate: false - xy: 781, 185 + xy: 1791, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters6 rotate: false - xy: 815, 185 + xy: 1825, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-metal-large rotate: false - xy: 1, 27 + xy: 687, 329 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dark-metal1 rotate: false - xy: 849, 185 + xy: 1859, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-metal2 rotate: false - xy: 883, 185 + xy: 1893, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1 rotate: false - xy: 917, 185 + xy: 1927, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-edge rotate: false - xy: 1, 93 + xy: 1, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-panel-2 rotate: false - xy: 951, 185 + xy: 1961, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-edge rotate: false - xy: 645, 415 + xy: 1, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-panel-3 rotate: false - xy: 985, 185 + xy: 1995, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-edge rotate: false - xy: 99, 93 + xy: 99, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-panel-4 rotate: false - xy: 1019, 185 + xy: 753, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-edge rotate: false - xy: 645, 317 + xy: 1, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-panel-5 rotate: false - xy: 1053, 185 + xy: 753, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-edge rotate: false - xy: 743, 415 + xy: 99, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-panel-6 rotate: false - xy: 1087, 185 + xy: 753, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-edge rotate: false - xy: 197, 93 + xy: 197, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 darksand-edge rotate: false - xy: 645, 219 + xy: 1, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 darksand-tainted-water rotate: false - xy: 1223, 185 + xy: 525, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-edge rotate: false - xy: 743, 317 + xy: 99, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 darksand-tainted-water1 rotate: false - xy: 1257, 185 + xy: 655, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water2 rotate: false - xy: 1291, 185 + xy: 753, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water3 rotate: false - xy: 1325, 185 + xy: 689, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water rotate: false - xy: 1359, 185 + xy: 689, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-edge rotate: false - xy: 841, 415 + xy: 197, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 darksand-water1 rotate: false - xy: 1393, 185 + xy: 737, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water2 rotate: false - xy: 1427, 183 + xy: 1181, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water3 rotate: false - xy: 1461, 183 + xy: 1215, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand1 rotate: false - xy: 1121, 185 + xy: 491, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand2 rotate: false - xy: 1155, 185 + xy: 557, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand3 rotate: false - xy: 1189, 185 + xy: 655, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater rotate: false - xy: 639, 151 + xy: 1249, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-edge rotate: false - xy: 295, 93 + xy: 295, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dunerocks-large rotate: false - xy: 1429, 251 + xy: 785, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dunerocks1 rotate: false - xy: 673, 151 + xy: 1283, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dunerocks2 rotate: false - xy: 707, 151 + xy: 1317, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 edge rotate: false - xy: 741, 151 + xy: 1351, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 edge-stencil rotate: false - xy: 743, 219 + xy: 1, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 edgier rotate: false - xy: 775, 151 + xy: 1385, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-edge rotate: false - xy: 841, 317 + xy: 99, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 grass1 rotate: false - xy: 809, 151 + xy: 1419, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass2 rotate: false - xy: 843, 151 + xy: 1453, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass3 rotate: false - xy: 877, 151 + xy: 1487, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone-edge rotate: false - xy: 939, 415 + xy: 197, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 holostone1 rotate: false - xy: 911, 151 + xy: 1521, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone2 rotate: false - xy: 945, 151 + xy: 1555, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone3 rotate: false - xy: 979, 151 + xy: 1589, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock1 rotate: false - xy: 1013, 151 + xy: 1623, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock2 rotate: false - xy: 1047, 151 + xy: 1657, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock3 rotate: false - xy: 1081, 151 + xy: 1691, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-edge rotate: false - xy: 393, 93 + xy: 295, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ice-snow-edge rotate: false - xy: 841, 219 + xy: 393, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ice-snow1 rotate: false - xy: 1217, 151 + xy: 1827, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow2 rotate: false - xy: 1251, 151 + xy: 1861, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow3 rotate: false - xy: 1285, 151 + xy: 1895, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice1 rotate: false - xy: 1115, 151 + xy: 1725, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice2 rotate: false - xy: 1149, 151 + xy: 1759, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice3 rotate: false - xy: 1183, 151 + xy: 1793, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icerocks-large rotate: false - xy: 1527, 349 + xy: 491, 35 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 icerocks1 rotate: false - xy: 1319, 151 + xy: 1929, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icerocks2 rotate: false - xy: 1353, 151 + xy: 1963, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-edge rotate: false - xy: 939, 317 + xy: 99, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ignarock1 rotate: false - xy: 1387, 151 + xy: 1997, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock2 rotate: false - xy: 1421, 149 + xy: 771, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock3 rotate: false - xy: 1455, 149 + xy: 1283, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lead1 rotate: false - xy: 391, 9 + xy: 1317, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lead2 rotate: false - xy: 425, 25 + xy: 1351, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lead3 rotate: false - xy: 459, 25 + xy: 1385, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock1 rotate: false - xy: 493, 25 + xy: 1419, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock2 rotate: false - xy: 527, 25 + xy: 1453, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock3 rotate: false - xy: 561, 25 + xy: 1487, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor rotate: false - xy: 1889, 429 + xy: 1521, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2 rotate: false - xy: 1923, 429 + xy: 1555, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-edge rotate: false - xy: 1037, 415 + xy: 197, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 metal-floor-3 rotate: false - xy: 1957, 429 + xy: 1589, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-edge rotate: false - xy: 491, 93 + xy: 295, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 metal-floor-5 rotate: false - xy: 1991, 429 + xy: 1623, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-edge rotate: false - xy: 939, 219 + xy: 393, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 metal-floor-damaged-edge rotate: false - xy: 1037, 317 + xy: 491, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 metal-floor-damaged1 rotate: false - xy: 623, 107 + xy: 1657, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged2 rotate: false - xy: 657, 117 + xy: 1691, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged3 rotate: false - xy: 691, 117 + xy: 1725, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-edge rotate: false - xy: 1135, 415 + xy: 197, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 moss-edge rotate: false - xy: 1037, 219 + xy: 295, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 moss1 rotate: false - xy: 725, 117 + xy: 1759, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss2 rotate: false - xy: 759, 117 + xy: 1793, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss3 rotate: false - xy: 793, 117 + xy: 1827, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal1 rotate: false - xy: 827, 117 + xy: 1861, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal2 rotate: false - xy: 861, 117 + xy: 1895, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal3 rotate: false - xy: 895, 117 + xy: 1929, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper1 rotate: false - xy: 929, 117 + xy: 1963, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper2 rotate: false - xy: 963, 117 + xy: 1997, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper3 rotate: false - xy: 997, 117 + xy: 723, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead1 rotate: false - xy: 1031, 117 + xy: 723, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead2 rotate: false - xy: 1065, 117 + xy: 757, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead3 rotate: false - xy: 1099, 117 + xy: 757, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap1 rotate: false - xy: 1133, 117 + xy: 689, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap2 rotate: false - xy: 1167, 117 + xy: 723, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap3 rotate: false - xy: 1201, 117 + xy: 757, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium1 rotate: false - xy: 1235, 117 + xy: 791, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium2 rotate: false - xy: 1269, 117 + xy: 791, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium3 rotate: false - xy: 1303, 117 + xy: 791, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium1 rotate: false - xy: 1337, 117 + xy: 757, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium2 rotate: false - xy: 1371, 117 + xy: 791, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium3 rotate: false - xy: 1405, 115 + xy: 591, 99 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles1 rotate: false - xy: 1439, 115 + xy: 591, 65 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles2 rotate: false - xy: 1473, 115 + xy: 625, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles3 rotate: false - xy: 1489, 149 + xy: 625, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pine rotate: false - xy: 589, 141 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -rock1 - rotate: false - xy: 265, 43 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -rock2 - rotate: false - xy: 1889, 463 + xy: 687, 213 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rocks-large rotate: false - xy: 1625, 447 + xy: 589, 133 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rocks1 rotate: false - xy: 1495, 183 + xy: 659, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rocks2 rotate: false - xy: 1507, 115 + xy: 693, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt rotate: false - xy: 1523, 149 + xy: 659, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-edge rotate: false - xy: 1135, 317 + xy: 393, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 saltrocks-large rotate: false - xy: 67, 27 + xy: 687, 263 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 saltrocks1 rotate: false - xy: 1541, 115 + xy: 693, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 saltrocks2 rotate: false - xy: 589, 73 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-boulder1 - rotate: false - xy: 725, 83 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-boulder2 - rotate: false - xy: 759, 83 + xy: 727, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-edge rotate: false - xy: 1233, 415 + xy: 491, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sand-water rotate: false - xy: 793, 83 + xy: 761, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-edge rotate: false - xy: 1135, 219 + xy: 589, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sand-water1 rotate: false - xy: 827, 83 + xy: 795, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water2 rotate: false - xy: 861, 83 + xy: 787, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water3 rotate: false - xy: 895, 83 + xy: 787, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand1 rotate: false - xy: 623, 73 + xy: 761, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand2 rotate: false - xy: 657, 83 + xy: 795, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand3 rotate: false - xy: 691, 83 + xy: 727, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-large rotate: false - xy: 1691, 447 + xy: 851, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sandrocks1 rotate: false - xy: 929, 83 + xy: 821, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks2 rotate: false - xy: 963, 83 + xy: 787, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap1 rotate: false - xy: 997, 83 + xy: 855, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap2 rotate: false - xy: 1031, 83 + xy: 821, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap3 rotate: false - xy: 1065, 83 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -shale-boulder1 - rotate: false - xy: 1201, 83 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -shale-boulder2 - rotate: false - xy: 1235, 83 + xy: 787, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-edge rotate: false - xy: 1233, 317 + xy: 295, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 shale1 rotate: false - xy: 1099, 83 + xy: 889, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale2 rotate: false - xy: 1133, 83 + xy: 821, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale3 rotate: false - xy: 1167, 83 + xy: 855, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-large rotate: false - xy: 133, 27 + xy: 917, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shalerocks1 rotate: false - xy: 1269, 83 + xy: 923, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks2 rotate: false - xy: 1303, 83 + xy: 821, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-large rotate: false - xy: 1757, 447 + xy: 983, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shrubs1 rotate: false - xy: 1337, 83 + xy: 855, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs2 rotate: false - xy: 1371, 83 + xy: 889, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag rotate: false - xy: 1405, 81 + xy: 957, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-edge rotate: false - xy: 1331, 415 + xy: 393, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 snow-edge rotate: false - xy: 1233, 219 + xy: 491, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 snow-pine rotate: false - xy: 315, 43 + xy: 1181, 443 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snow1 rotate: false - xy: 1439, 81 + xy: 855, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow2 rotate: false - xy: 1473, 81 + xy: 889, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow3 rotate: false - xy: 1507, 81 + xy: 923, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -snowrock1 - rotate: false - xy: 1939, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -snowrock2 - rotate: false - xy: 365, 43 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 snowrocks-large rotate: false - xy: 199, 27 + xy: 1049, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 snowrocks1 rotate: false - xy: 1541, 81 + xy: 991, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrocks2 rotate: false - xy: 595, 39 + xy: 889, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn rotate: false - xy: 629, 39 + xy: 923, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -spore-cluster1 - rotate: false - xy: 265, 1 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -spore-cluster2 - rotate: false - xy: 307, 1 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -spore-cluster3 - rotate: false - xy: 349, 1 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 spore-moss-edge rotate: false - xy: 1331, 317 + xy: 589, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 spore-moss1 rotate: false - xy: 663, 49 + xy: 957, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss2 rotate: false - xy: 697, 49 + xy: 1025, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss3 rotate: false - xy: 731, 49 + xy: 923, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-pine rotate: false - xy: 1989, 463 + xy: 1231, 443 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sporerocks-large rotate: false - xy: 1823, 447 + xy: 1115, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sporerocks1 rotate: false - xy: 765, 49 + xy: 957, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sporerocks2 rotate: false - xy: 799, 49 + xy: 991, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-edge rotate: false - xy: 1429, 415 + xy: 687, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 stone1 rotate: false - xy: 833, 49 + xy: 1059, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone2 rotate: false - xy: 867, 49 + xy: 957, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone3 rotate: false - xy: 901, 49 + xy: 991, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water rotate: false - xy: 935, 49 + xy: 1025, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-edge rotate: false - xy: 1331, 219 + xy: 393, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 tar rotate: false - xy: 969, 49 + xy: 1093, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-edge rotate: false - xy: 1429, 317 + xy: 491, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 tendrils1 rotate: false - xy: 1003, 49 + xy: 991, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils2 rotate: false - xy: 1037, 49 + xy: 1025, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils3 rotate: false - xy: 1071, 49 + xy: 1059, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 1105, 49 + xy: 1127, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 1139, 49 + xy: 1025, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 1173, 49 + xy: 1059, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 1207, 49 + xy: 1093, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 1241, 49 + xy: 1059, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 1275, 49 + xy: 1093, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water rotate: false - xy: 1309, 49 + xy: 1127, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-edge rotate: false - xy: 1527, 415 + xy: 589, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -white-tree - rotate: false - xy: 1, 191 - size: 320, 320 - orig: 320, 320 - offset: 0, 0 - index: -1 -white-tree-dead - rotate: false - xy: 323, 191 - size: 320, 320 - orig: 320, 320 - offset: 0, 0 - index: -1 sprites3.png size: 2048,1024 @@ -7060,7 +7088,7 @@ alpha-bg index: -1 bar rotate: false - xy: 1899, 869 + xy: 1216, 418 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -7068,7 +7096,7 @@ bar index: -1 bar-top rotate: false - xy: 1870, 869 + xy: 1250, 452 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -7083,21 +7111,21 @@ block-alloy-smelter-large index: -1 block-alloy-smelter-medium rotate: false - xy: 821, 944 + xy: 1339, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 1981, 949 + xy: 781, 690 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 301, 1 + xy: 879, 410 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7118,21 +7146,21 @@ block-arc-large index: -1 block-arc-medium rotate: false - xy: 1505, 941 + xy: 1373, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 781, 690 + xy: 43, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 319, 1 + xy: 301, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7146,28 +7174,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 401, 424 + xy: 501, 524 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1539, 941 + xy: 1407, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 38, 2 + xy: 1289, 611 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 309, 698 + xy: 319, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7181,35 +7209,35 @@ block-armored-conveyor-xlarge index: -1 block-battery-large rotate: false - xy: 451, 474 + xy: 551, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 501, 524 + xy: 351, 324 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 1573, 941 + xy: 1441, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 859, 682 + xy: 69, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 331, 598 + xy: 309, 698 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7223,21 +7251,21 @@ block-battery-large-xlarge index: -1 block-battery-medium rotate: false - xy: 1607, 941 + xy: 1475, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 1505, 711 + xy: 1289, 585 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 761, 598 + xy: 331, 598 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7251,28 +7279,28 @@ block-battery-xlarge index: -1 block-blast-drill-large rotate: false - xy: 551, 574 + xy: 401, 374 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 1641, 941 + xy: 1509, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 1675, 745 + xy: 95, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 1907, 851 + xy: 761, 598 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7286,28 +7314,28 @@ block-blast-drill-xlarge index: -1 block-blast-mixer-large rotate: false - xy: 351, 324 + xy: 451, 424 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 1675, 941 + xy: 1543, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 1709, 779 + xy: 121, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 1059, 534 + xy: 859, 682 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -7319,6309 +7347,6379 @@ block-blast-mixer-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-bridge-conduit-large +block-block-forge-large rotate: false - xy: 401, 382 + xy: 501, 482 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-bridge-conduit-medium +block-block-forge-medium rotate: false - xy: 1709, 941 + xy: 1577, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-bridge-conduit-small +block-block-forge-small rotate: false - xy: 1743, 813 + xy: 1245, 426 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-bridge-conduit-tiny +block-block-forge-tiny rotate: false - xy: 1015, 482 + xy: 1191, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-bridge-conduit-xlarge +block-block-forge-xlarge rotate: false xy: 181, 608 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-bridge-conveyor-large +block-block-launcher-large rotate: false xy: 593, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-bridge-conveyor-medium +block-block-launcher-medium rotate: false - xy: 1743, 941 + xy: 1611, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-bridge-conveyor-small +block-block-launcher-small rotate: false - xy: 1777, 841 + xy: 1289, 559 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-bridge-conveyor-tiny +block-block-launcher-tiny rotate: false - xy: 1033, 508 + xy: 1165, 378 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-bridge-conveyor-xlarge +block-block-launcher-xlarge rotate: false xy: 259, 769 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-char-large +block-bridge-conduit-large rotate: false xy: 351, 282 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-char-medium +block-bridge-conduit-medium rotate: false - xy: 1777, 941 + xy: 1645, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-char-small +block-bridge-conduit-small rotate: false - xy: 1957, 881 + xy: 1287, 533 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-char-tiny +block-bridge-conduit-tiny rotate: false - xy: 309, 680 + xy: 1431, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-char-xlarge +block-bridge-conduit-xlarge rotate: false xy: 1, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cliff-large +block-bridge-conveyor-large rotate: false xy: 635, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cliff-medium +block-bridge-conveyor-medium rotate: false - xy: 1811, 941 + xy: 882, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cliff-small +block-bridge-conveyor-small rotate: false - xy: 64, 2 + xy: 645, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cliff-tiny +block-bridge-conveyor-tiny rotate: false - xy: 331, 580 + xy: 1301, 717 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cliff-xlarge +block-bridge-conveyor-xlarge rotate: false xy: 51, 428 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cliffs-large +block-char-large rotate: false xy: 351, 240 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cliffs-medium +block-char-medium rotate: false - xy: 1845, 941 + xy: 916, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cliffs-small +block-char-small rotate: false - xy: 885, 682 + xy: 671, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cliffs-tiny +block-char-tiny rotate: false - xy: 761, 580 + xy: 1327, 743 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cliffs-xlarge +block-char-xlarge rotate: false xy: 181, 558 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-coal-centrifuge-large +block-cliff-large rotate: false xy: 677, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-coal-centrifuge-medium +block-cliff-medium rotate: false - xy: 1879, 941 + xy: 950, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-coal-centrifuge-small +block-cliff-small rotate: false - xy: 1531, 711 + xy: 697, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-coal-centrifuge-tiny +block-cliff-tiny rotate: false - xy: 1077, 534 + xy: 1379, 779 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-coal-centrifuge-xlarge +block-cliff-xlarge rotate: false xy: 259, 719 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-combustion-generator-large +block-cliffs-large rotate: false xy: 351, 198 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-combustion-generator-medium +block-cliffs-medium rotate: false - xy: 1913, 941 + xy: 984, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-combustion-generator-small +block-cliffs-small rotate: false - xy: 1803, 841 + xy: 723, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-combustion-generator-tiny +block-cliffs-tiny rotate: false - xy: 1015, 464 + xy: 309, 680 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-combustion-generator-xlarge +block-cliffs-xlarge rotate: false xy: 1, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conduit-large +block-coal-centrifuge-large rotate: false xy: 719, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conduit-medium +block-coal-centrifuge-medium rotate: false - xy: 1947, 941 + xy: 1018, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conduit-small +block-coal-centrifuge-small rotate: false - xy: 1957, 855 + xy: 749, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conduit-tiny +block-coal-centrifuge-tiny rotate: false - xy: 1033, 490 + xy: 331, 580 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conduit-xlarge +block-coal-centrifuge-xlarge rotate: false xy: 51, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-container-large +block-combustion-generator-large rotate: false xy: 351, 156 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-container-medium +block-combustion-generator-medium rotate: false - xy: 981, 334 + xy: 1052, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-container-small +block-combustion-generator-small rotate: false - xy: 1983, 881 + xy: 775, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-container-tiny +block-combustion-generator-tiny rotate: false - xy: 1095, 534 + xy: 761, 580 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-container-xlarge +block-combustion-generator-xlarge rotate: false xy: 259, 669 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conveyor-large +block-conduit-large rotate: false xy: 351, 114 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conveyor-medium +block-conduit-medium rotate: false - xy: 981, 300 + xy: 1086, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conveyor-small +block-conduit-small rotate: false - xy: 90, 2 + xy: 801, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conveyor-tiny +block-conduit-tiny rotate: false - xy: 1015, 446 + xy: 1431, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conveyor-xlarge +block-conduit-xlarge rotate: false xy: 1, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-large +block-container-large rotate: false xy: 351, 72 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-copper-wall-large-large +block-container-medium rotate: false - xy: 351, 30 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-copper-wall-large-medium - rotate: false - xy: 981, 266 + xy: 1120, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-large-small +block-container-small rotate: false - xy: 911, 682 + xy: 827, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-large-tiny +block-container-tiny rotate: false - xy: 1033, 472 + xy: 1449, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-large-xlarge +block-container-xlarge rotate: false xy: 51, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-medium +block-conveyor-large rotate: false - xy: 981, 232 + xy: 351, 30 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-conveyor-medium + rotate: false + xy: 1154, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-small +block-conveyor-small rotate: false - xy: 1557, 711 + xy: 905, 402 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-tiny +block-conveyor-tiny rotate: false - xy: 1113, 534 + xy: 1431, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-xlarge +block-conveyor-xlarge rotate: false xy: 1, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-foundation-large +block-copper-wall-large rotate: false - xy: 401, 340 + xy: 501, 440 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-foundation-medium - rotate: false - xy: 981, 198 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-core-foundation-small - rotate: false - xy: 1829, 841 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-core-foundation-tiny - rotate: false - xy: 1015, 428 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-core-foundation-xlarge - rotate: false - xy: 51, 278 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-core-nucleus-large - rotate: false - xy: 393, 298 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-core-nucleus-medium - rotate: false - xy: 977, 164 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-core-nucleus-small - rotate: false - xy: 1983, 855 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-core-nucleus-tiny - rotate: false - xy: 1033, 454 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-core-nucleus-xlarge - rotate: false - xy: 1, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-core-shard-large - rotate: false - xy: 393, 256 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-core-shard-medium - rotate: false - xy: 977, 130 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-core-shard-small - rotate: false - xy: 2009, 881 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-core-shard-tiny - rotate: false - xy: 1131, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-core-shard-xlarge - rotate: false - xy: 51, 228 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-craters-large - rotate: false - xy: 393, 214 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-craters-medium - rotate: false - xy: 977, 96 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-craters-small - rotate: false - xy: 116, 2 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-craters-tiny - rotate: false - xy: 1015, 410 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-craters-xlarge - rotate: false - xy: 1, 128 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-cryofluidmixer-large - rotate: false - xy: 393, 172 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cryofluidmixer-medium - rotate: false - xy: 977, 62 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cryofluidmixer-small - rotate: false - xy: 937, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cryofluidmixer-tiny - rotate: false - xy: 1033, 436 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-cryofluidmixer-xlarge - rotate: false - xy: 51, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-cultivator-large - rotate: false - xy: 393, 130 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cultivator-medium - rotate: false - xy: 977, 28 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cultivator-small - rotate: false - xy: 1583, 711 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cultivator-tiny - rotate: false - xy: 1149, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-cultivator-xlarge - rotate: false - xy: 1, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-cyclone-large - rotate: false - xy: 393, 88 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cyclone-medium - rotate: false - xy: 1011, 164 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cyclone-small - rotate: false - xy: 2009, 855 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cyclone-tiny - rotate: false - xy: 1015, 392 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-cyclone-xlarge - rotate: false - xy: 51, 128 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-metal-large - rotate: false - xy: 393, 46 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-metal-medium - rotate: false - xy: 1011, 130 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-metal-small - rotate: false - xy: 963, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-metal-tiny - rotate: false - xy: 1033, 418 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-metal-xlarge - rotate: false - xy: 1, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-1-large - rotate: false - xy: 393, 4 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-1-medium - rotate: false - xy: 1011, 96 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-1-small - rotate: false - xy: 989, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-1-tiny - rotate: false - xy: 1167, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-1-xlarge - rotate: false - xy: 51, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-2-large - rotate: false - xy: 443, 424 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-2-medium - rotate: false - xy: 1011, 62 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-2-small - rotate: false - xy: 1015, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-2-tiny - rotate: false - xy: 1033, 400 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-2-xlarge - rotate: false - xy: 51, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-3-large - rotate: false - xy: 443, 382 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-3-medium - rotate: false - xy: 1011, 28 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-3-small - rotate: false - xy: 1609, 711 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-3-tiny - rotate: false - xy: 1185, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-3-xlarge - rotate: false - xy: 857, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-4-large - rotate: false - xy: 443, 340 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-4-medium - rotate: false - xy: 859, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-4-small - rotate: false - xy: 1041, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-4-tiny - rotate: false - xy: 1203, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-4-xlarge - rotate: false - xy: 907, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-5-large - rotate: false - xy: 435, 298 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-5-medium - rotate: false - xy: 845, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-5-small - rotate: false - xy: 1635, 711 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-5-tiny - rotate: false - xy: 1221, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-5-xlarge - rotate: false - xy: 957, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-6-large - rotate: false - xy: 435, 256 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-6-medium - rotate: false - xy: 893, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-6-small - rotate: false - xy: 1067, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-6-tiny - rotate: false - xy: 1239, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-6-xlarge - rotate: false - xy: 1007, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-darksand-large - rotate: false - xy: 435, 214 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-medium - rotate: false - xy: 879, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-small - rotate: false - xy: 1093, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-large - rotate: false - xy: 435, 172 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-medium - rotate: false - xy: 859, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-small - rotate: false - xy: 1119, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-tiny - rotate: false - xy: 1257, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-xlarge - rotate: false - xy: 1057, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-darksand-tiny - rotate: false - xy: 1275, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-large - rotate: false - xy: 435, 130 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-water-medium - rotate: false - xy: 927, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-water-small - rotate: false - xy: 1145, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-water-tiny - rotate: false - xy: 1293, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-xlarge - rotate: false - xy: 1107, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-darksand-xlarge - rotate: false - xy: 1157, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-deepwater-large - rotate: false - xy: 435, 88 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-deepwater-medium - rotate: false - xy: 913, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-deepwater-small - rotate: false - xy: 1171, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-deepwater-tiny - rotate: false - xy: 1311, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-deepwater-xlarge - rotate: false - xy: 1207, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-differential-generator-large - rotate: false - xy: 435, 46 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-differential-generator-medium - rotate: false - xy: 859, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-differential-generator-small - rotate: false - xy: 1197, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-differential-generator-tiny - rotate: false - xy: 1329, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-differential-generator-xlarge - rotate: false - xy: 1257, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-diode-large - rotate: false - xy: 435, 4 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-diode-medium - rotate: false - xy: 893, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-diode-small - rotate: false - xy: 1223, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-diode-tiny - rotate: false - xy: 1347, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-diode-xlarge - rotate: false - xy: 1307, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-distributor-large - rotate: false - xy: 493, 474 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-distributor-medium - rotate: false - xy: 961, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-distributor-small - rotate: false - xy: 1249, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-distributor-tiny - rotate: false - xy: 1365, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-distributor-xlarge - rotate: false - xy: 1357, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-door-large - rotate: false - xy: 485, 432 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-large - rotate: false - xy: 485, 390 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-medium - rotate: false - xy: 947, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-door-large-small - rotate: false - xy: 1275, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-door-large-tiny - rotate: false - xy: 1383, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-door-large-xlarge - rotate: false - xy: 1407, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-door-medium - rotate: false - xy: 859, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-door-small - rotate: false - xy: 1301, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-door-tiny - rotate: false - xy: 1401, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-door-xlarge - rotate: false - xy: 1457, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dunerocks-large - rotate: false - xy: 485, 348 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dunerocks-medium - rotate: false - xy: 893, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dunerocks-small - rotate: false - xy: 1327, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dunerocks-tiny - rotate: false - xy: 1419, 534 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dunerocks-xlarge - rotate: false - xy: 1507, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-duo-large +block-copper-wall-large-large rotate: false xy: 543, 524 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-duo-medium +block-copper-wall-large-medium rotate: false - xy: 927, 844 + xy: 1188, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-duo-small +block-copper-wall-large-small rotate: false - xy: 1353, 682 + xy: 931, 402 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-duo-tiny +block-copper-wall-large-tiny rotate: false - xy: 1437, 534 + xy: 1449, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-duo-xlarge +block-copper-wall-large-xlarge rotate: false - xy: 1557, 975 + xy: 51, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-force-projector-large +block-copper-wall-medium rotate: false - xy: 535, 482 + xy: 1222, 870 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-copper-wall-small + rotate: false + xy: 905, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-copper-wall-tiny + rotate: false + xy: 1467, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-copper-wall-xlarge + rotate: false + xy: 1, 178 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-core-foundation-large + rotate: false + xy: 543, 482 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-force-projector-medium +block-core-foundation-medium rotate: false - xy: 995, 912 + xy: 1256, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-force-projector-small +block-core-foundation-small rotate: false - xy: 1379, 682 + xy: 957, 402 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-force-projector-tiny +block-core-foundation-tiny rotate: false - xy: 1455, 534 + xy: 1449, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-force-projector-xlarge +block-core-foundation-xlarge rotate: false - xy: 1607, 975 + xy: 51, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-fuse-large +block-core-nucleus-large + rotate: false + xy: 543, 440 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-core-nucleus-medium + rotate: false + xy: 1290, 870 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-core-nucleus-small + rotate: false + xy: 931, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-core-nucleus-tiny + rotate: false + xy: 1467, 829 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-core-nucleus-xlarge + rotate: false + xy: 1, 128 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-core-shard-large rotate: false xy: 585, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-fuse-medium +block-core-shard-medium rotate: false - xy: 981, 878 + xy: 1679, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-fuse-small +block-core-shard-small rotate: false - xy: 1405, 682 + xy: 983, 402 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-fuse-tiny +block-core-shard-tiny rotate: false - xy: 1473, 534 + xy: 1485, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-fuse-xlarge +block-core-shard-xlarge rotate: false - xy: 1657, 975 + xy: 51, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-graphite-press-large +block-craters-large + rotate: false + xy: 585, 490 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-craters-medium + rotate: false + xy: 1713, 912 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-craters-small + rotate: false + xy: 957, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-craters-tiny + rotate: false + xy: 1467, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-craters-xlarge + rotate: false + xy: 1, 78 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-cryofluidmixer-large rotate: false xy: 627, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-graphite-press-medium +block-cryofluidmixer-medium rotate: false - xy: 859, 742 + xy: 1747, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-graphite-press-small +block-cryofluidmixer-small rotate: false - xy: 1431, 682 + xy: 1009, 402 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-graphite-press-tiny +block-cryofluidmixer-tiny rotate: false - xy: 1491, 534 + xy: 1485, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-graphite-press-xlarge +block-cryofluidmixer-xlarge rotate: false - xy: 1707, 975 + xy: 51, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-grass-large +block-cultivator-large + rotate: false + xy: 585, 448 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-cultivator-medium + rotate: false + xy: 1781, 912 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-cultivator-small + rotate: false + xy: 983, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-cultivator-tiny + rotate: false + xy: 1503, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-cultivator-xlarge + rotate: false + xy: 1, 28 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-cyclone-large + rotate: false + xy: 627, 490 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-cyclone-medium + rotate: false + xy: 1815, 912 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-cyclone-small + rotate: false + xy: 1035, 402 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-cyclone-tiny + rotate: false + xy: 1485, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-cyclone-xlarge + rotate: false + xy: 51, 78 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-metal-large rotate: false xy: 669, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-grass-medium +block-dark-metal-medium rotate: false - xy: 893, 776 + xy: 1849, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-dark-metal-small rotate: false - xy: 1457, 682 + xy: 1009, 376 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-dark-metal-tiny rotate: false - xy: 935, 8 + xy: 1503, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-dark-metal-xlarge rotate: false - xy: 1757, 975 + xy: 51, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ground-factory-large +block-dark-panel-1-large + rotate: false + xy: 627, 448 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-1-medium + rotate: false + xy: 1883, 912 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-1-small + rotate: false + xy: 1061, 402 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-1-tiny + rotate: false + xy: 1521, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-1-xlarge + rotate: false + xy: 857, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-2-large + rotate: false + xy: 669, 490 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-2-medium + rotate: false + xy: 1917, 912 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-2-small + rotate: false + xy: 1035, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-2-tiny + rotate: false + xy: 1503, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-2-xlarge + rotate: false + xy: 907, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-3-large rotate: false xy: 711, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ground-factory-medium +block-dark-panel-3-medium rotate: false - xy: 927, 810 + xy: 1951, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ground-factory-small +block-dark-panel-3-small rotate: false - xy: 881, 656 + xy: 1087, 402 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ground-factory-tiny +block-dark-panel-3-tiny rotate: false - xy: 953, 8 + xy: 1521, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ground-factory-xlarge +block-dark-panel-3-xlarge + rotate: false + xy: 957, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-4-large + rotate: false + xy: 669, 448 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-4-medium + rotate: false + xy: 1324, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-4-small + rotate: false + xy: 1061, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-4-tiny + rotate: false + xy: 1539, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-4-xlarge + rotate: false + xy: 1007, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-5-large + rotate: false + xy: 711, 490 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-5-medium + rotate: false + xy: 1358, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-5-small + rotate: false + xy: 1113, 402 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-5-tiny + rotate: false + xy: 1521, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-5-xlarge + rotate: false + xy: 1057, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-6-large + rotate: false + xy: 711, 448 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-6-medium + rotate: false + xy: 1392, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-6-small + rotate: false + xy: 1087, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-6-tiny + rotate: false + xy: 1539, 829 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-6-xlarge + rotate: false + xy: 1107, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-large + rotate: false + xy: 393, 324 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-medium + rotate: false + xy: 1426, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-small + rotate: false + xy: 1139, 402 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-large + rotate: false + xy: 393, 282 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-medium + rotate: false + xy: 1460, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-small + rotate: false + xy: 1113, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-tiny + rotate: false + xy: 1557, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-xlarge + rotate: false + xy: 1157, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-tiny + rotate: false + xy: 1539, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-large + rotate: false + xy: 393, 240 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-water-medium + rotate: false + xy: 1494, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-water-small + rotate: false + xy: 1139, 376 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-water-tiny + rotate: false + xy: 1557, 829 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-xlarge + rotate: false + xy: 1207, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-xlarge + rotate: false + xy: 1257, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-deepwater-large + rotate: false + xy: 393, 198 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-deepwater-medium + rotate: false + xy: 1528, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-deepwater-small + rotate: false + xy: 939, 350 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-deepwater-tiny + rotate: false + xy: 1575, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-deepwater-xlarge + rotate: false + xy: 1307, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-differential-generator-large + rotate: false + xy: 393, 156 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-differential-generator-medium + rotate: false + xy: 1562, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-differential-generator-small + rotate: false + xy: 939, 324 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-differential-generator-tiny + rotate: false + xy: 1557, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-differential-generator-xlarge + rotate: false + xy: 1357, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-diode-large + rotate: false + xy: 393, 114 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-diode-medium + rotate: false + xy: 1596, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-diode-small + rotate: false + xy: 965, 350 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-diode-tiny + rotate: false + xy: 1575, 829 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-diode-xlarge + rotate: false + xy: 1407, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-distributor-large + rotate: false + xy: 393, 72 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-distributor-medium + rotate: false + xy: 1630, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-distributor-small + rotate: false + xy: 939, 298 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-distributor-tiny + rotate: false + xy: 1593, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-distributor-xlarge + rotate: false + xy: 1457, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-door-large + rotate: false + xy: 393, 30 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-large + rotate: false + xy: 443, 374 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-medium + rotate: false + xy: 1664, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-door-large-small + rotate: false + xy: 965, 324 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-door-large-tiny + rotate: false + xy: 1575, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-door-large-xlarge + rotate: false + xy: 1507, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-door-medium + rotate: false + xy: 1698, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-door-small + rotate: false + xy: 991, 350 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-door-tiny + rotate: false + xy: 1593, 829 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-door-xlarge + rotate: false + xy: 1557, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dunerocks-large + rotate: false + xy: 435, 332 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dunerocks-medium + rotate: false + xy: 1732, 878 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dunerocks-small + rotate: false + xy: 939, 272 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dunerocks-tiny + rotate: false + xy: 1611, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dunerocks-xlarge + rotate: false + xy: 1607, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-duo-large + rotate: false + xy: 435, 290 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-duo-medium + rotate: false + xy: 1766, 878 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-duo-small + rotate: false + xy: 965, 298 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-duo-tiny + rotate: false + xy: 1593, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-duo-xlarge + rotate: false + xy: 1657, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-force-projector-large + rotate: false + xy: 435, 248 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-force-projector-medium + rotate: false + xy: 1800, 878 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-force-projector-small + rotate: false + xy: 991, 324 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-force-projector-tiny + rotate: false + xy: 1611, 829 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-force-projector-xlarge + rotate: false + xy: 1707, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-fuse-large + rotate: false + xy: 435, 206 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-fuse-medium + rotate: false + xy: 1834, 878 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-fuse-small + rotate: false + xy: 1017, 350 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-fuse-tiny + rotate: false + xy: 1629, 847 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-fuse-xlarge + rotate: false + xy: 1757, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-graphite-press-large + rotate: false + xy: 435, 164 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-graphite-press-medium + rotate: false + xy: 1868, 878 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-graphite-press-small + rotate: false + xy: 939, 246 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-graphite-press-tiny + rotate: false + xy: 1611, 811 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-graphite-press-xlarge rotate: false xy: 1807, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hail-large +block-grass-large rotate: false - xy: 477, 298 + xy: 435, 122 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hail-medium +block-grass-medium rotate: false - xy: 961, 844 + xy: 1902, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hail-small +block-grass-small rotate: false - xy: 881, 630 + xy: 965, 272 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hail-tiny +block-grass-tiny rotate: false - xy: 1015, 374 + xy: 1629, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hail-xlarge +block-grass-xlarge rotate: false xy: 1857, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-holostone-large +block-ground-factory-large rotate: false - xy: 477, 256 + xy: 435, 80 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-holostone-medium +block-ground-factory-medium rotate: false - xy: 1029, 912 + xy: 1936, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-holostone-small +block-ground-factory-small rotate: false - xy: 907, 656 + xy: 991, 298 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-holostone-tiny +block-ground-factory-tiny rotate: false - xy: 1033, 382 + xy: 1647, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-holostone-xlarge +block-ground-factory-xlarge rotate: false xy: 1907, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hotrock-large +block-hail-large rotate: false - xy: 477, 214 + xy: 435, 38 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hotrock-medium +block-hail-medium rotate: false - xy: 1015, 878 + xy: 1970, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hotrock-small +block-hail-small rotate: false - xy: 881, 604 + xy: 1017, 324 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hotrock-tiny +block-hail-tiny rotate: false - xy: 1015, 356 + xy: 1629, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hotrock-xlarge +block-hail-xlarge rotate: false xy: 1957, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-large +block-holostone-large rotate: false - xy: 477, 172 + xy: 493, 398 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ice-medium +block-holostone-medium rotate: false - xy: 859, 708 + xy: 1732, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-small +block-holostone-small rotate: false - xy: 881, 578 + xy: 1043, 350 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-large +block-holostone-tiny rotate: false - xy: 477, 130 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium - rotate: false - xy: 893, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-small - rotate: false - xy: 933, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-tiny - rotate: false - xy: 1033, 364 + xy: 1647, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-xlarge +block-holostone-xlarge rotate: false xy: 345, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-tiny +block-hotrock-large rotate: false - xy: 1015, 338 + xy: 535, 398 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-hotrock-medium + rotate: false + xy: 1766, 844 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hotrock-small + rotate: false + xy: 939, 220 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-hotrock-tiny + rotate: false + xy: 1665, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-xlarge +block-hotrock-xlarge rotate: false xy: 395, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-icerocks-large +block-ice-large rotate: false - xy: 477, 88 + xy: 485, 356 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-icerocks-medium +block-ice-medium rotate: false - xy: 927, 776 + xy: 1800, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-icerocks-small +block-ice-small rotate: false - xy: 907, 630 + xy: 965, 246 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-icerocks-tiny +block-ice-snow-large rotate: false - xy: 1033, 346 + xy: 527, 356 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-snow-medium + rotate: false + xy: 1834, 844 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-small + rotate: false + xy: 991, 272 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-tiny + rotate: false + xy: 1647, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-icerocks-xlarge +block-ice-snow-xlarge rotate: false xy: 445, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ignarock-large +block-ice-tiny rotate: false - xy: 477, 46 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ignarock-medium - rotate: false - xy: 961, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ignarock-small - rotate: false - xy: 959, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ignarock-tiny - rotate: false - xy: 1015, 320 + xy: 1665, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ignarock-xlarge +block-ice-xlarge rotate: false xy: 495, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-illuminator-large +block-icerocks-large rotate: false - xy: 477, 4 + xy: 477, 314 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-illuminator-medium +block-icerocks-medium rotate: false - xy: 995, 844 + xy: 1868, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-illuminator-small +block-icerocks-small rotate: false - xy: 933, 630 + xy: 1017, 298 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-illuminator-tiny +block-icerocks-tiny rotate: false - xy: 1033, 328 + xy: 1683, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-illuminator-xlarge +block-icerocks-xlarge rotate: false xy: 545, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-impact-reactor-large +block-ignarock-large rotate: false - xy: 527, 432 + xy: 477, 272 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-impact-reactor-medium +block-ignarock-medium rotate: false - xy: 1063, 912 + xy: 1902, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-impact-reactor-small +block-ignarock-small rotate: false - xy: 907, 604 + xy: 1043, 324 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-impact-reactor-tiny +block-ignarock-tiny rotate: false - xy: 1015, 302 + xy: 1665, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-impact-reactor-xlarge +block-ignarock-xlarge rotate: false xy: 595, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-incinerator-large +block-illuminator-large rotate: false - xy: 527, 390 + xy: 519, 314 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-incinerator-medium +block-illuminator-medium rotate: false - xy: 1049, 878 + xy: 1936, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-illuminator-small rotate: false - xy: 907, 578 + xy: 1069, 350 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny +block-illuminator-tiny rotate: false - xy: 1033, 310 + xy: 1683, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-incinerator-xlarge +block-illuminator-xlarge rotate: false xy: 645, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-inverted-sorter-large +block-impact-reactor-large rotate: false - xy: 527, 348 + xy: 477, 230 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-inverted-sorter-medium +block-impact-reactor-medium rotate: false - xy: 893, 708 + xy: 1970, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-inverted-sorter-small +block-impact-reactor-small rotate: false - xy: 985, 656 + xy: 939, 194 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-inverted-sorter-tiny +block-impact-reactor-tiny rotate: false - xy: 1015, 284 + xy: 1701, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-inverted-sorter-xlarge +block-impact-reactor-xlarge rotate: false xy: 695, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-source-large +block-incinerator-large rotate: false - xy: 519, 306 + xy: 519, 272 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-source-medium +block-incinerator-medium rotate: false - xy: 927, 742 + xy: 859, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-source-small +block-incinerator-small rotate: false - xy: 959, 630 + xy: 965, 220 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-source-tiny +block-incinerator-tiny rotate: false - xy: 1033, 292 + xy: 1683, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-source-xlarge +block-incinerator-xlarge rotate: false xy: 101, 478 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-void-large +block-inverted-sorter-large rotate: false - xy: 519, 264 + xy: 477, 188 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-void-medium +block-inverted-sorter-medium rotate: false - xy: 961, 776 + xy: 893, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-void-small +block-inverted-sorter-small rotate: false - xy: 933, 604 + xy: 991, 246 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-void-tiny +block-inverted-sorter-tiny rotate: false - xy: 1015, 266 + xy: 1701, 829 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-void-xlarge +block-inverted-sorter-xlarge rotate: false xy: 101, 428 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-junction-large +block-item-source-large rotate: false - xy: 519, 222 + xy: 519, 230 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-junction-medium +block-item-source-medium rotate: false - xy: 995, 810 + xy: 859, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-junction-small +block-item-source-small rotate: false - xy: 1011, 656 + xy: 1017, 272 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-junction-tiny +block-item-source-tiny rotate: false - xy: 1033, 274 + xy: 1701, 811 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-junction-xlarge +block-item-source-xlarge rotate: false xy: 101, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-kiln-large +block-item-void-large rotate: false - xy: 519, 180 + xy: 477, 146 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-kiln-medium +block-item-void-medium rotate: false - xy: 1029, 844 + xy: 927, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-kiln-small +block-item-void-small rotate: false - xy: 985, 630 + xy: 1043, 298 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-kiln-tiny +block-item-void-tiny rotate: false - xy: 1015, 248 + xy: 1353, 753 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-kiln-xlarge +block-item-void-xlarge rotate: false xy: 101, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-lancer-large +block-junction-large rotate: false - xy: 519, 138 + xy: 519, 188 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-lancer-medium +block-junction-medium rotate: false - xy: 1097, 912 + xy: 859, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-lancer-small +block-junction-small rotate: false - xy: 959, 604 + xy: 1069, 324 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-lancer-tiny +block-junction-tiny rotate: false - xy: 1033, 256 + xy: 1431, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-lancer-xlarge +block-junction-xlarge rotate: false xy: 101, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-laser-drill-large +block-kiln-large rotate: false - xy: 519, 96 + xy: 477, 104 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-laser-drill-medium +block-kiln-medium rotate: false - xy: 1083, 878 + xy: 893, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-laser-drill-small +block-kiln-small rotate: false - xy: 933, 578 + xy: 1095, 350 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-laser-drill-tiny +block-kiln-tiny rotate: false - xy: 1015, 230 + xy: 1449, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-laser-drill-xlarge +block-kiln-xlarge rotate: false xy: 101, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-large +block-lancer-large rotate: false - xy: 519, 54 + xy: 519, 146 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-launch-pad-large-large +block-lancer-medium rotate: false - xy: 519, 12 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-medium - rotate: false - xy: 927, 708 + xy: 961, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-large-small +block-lancer-small rotate: false - xy: 921, 552 + xy: 939, 168 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-large-tiny +block-lancer-tiny rotate: false - xy: 1033, 238 + xy: 1467, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-large-xlarge +block-lancer-xlarge rotate: false xy: 101, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-medium +block-laser-drill-large rotate: false - xy: 961, 742 + xy: 477, 62 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-laser-drill-medium + rotate: false + xy: 859, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-small +block-laser-drill-small rotate: false - xy: 1037, 656 + xy: 965, 194 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-tiny +block-laser-drill-tiny rotate: false - xy: 1015, 212 + xy: 1485, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-xlarge +block-laser-drill-xlarge rotate: false xy: 101, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-junction-large +block-launch-pad-large rotate: false - xy: 577, 482 + xy: 519, 104 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-junction-medium +block-launch-pad-large-large rotate: false - xy: 995, 776 + xy: 519, 62 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-medium + rotate: false + xy: 927, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-junction-small +block-launch-pad-large-small rotate: false - xy: 1011, 630 + xy: 991, 220 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-junction-tiny +block-launch-pad-large-tiny rotate: false - xy: 1033, 220 + xy: 1503, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-junction-xlarge +block-launch-pad-large-xlarge rotate: false xy: 101, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-router-large +block-launch-pad-medium rotate: false - xy: 569, 440 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 1063, 844 + xy: 893, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-router-small +block-launch-pad-small rotate: false - xy: 985, 604 + xy: 1017, 246 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-router-tiny +block-launch-pad-tiny rotate: false - xy: 1509, 534 + xy: 1521, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-router-xlarge +block-launch-pad-xlarge rotate: false xy: 101, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-source-large +block-liquid-junction-large rotate: false - xy: 569, 398 + xy: 477, 20 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-source-medium +block-liquid-junction-medium rotate: false - xy: 1029, 810 + xy: 995, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-source-small +block-liquid-junction-small rotate: false - xy: 959, 578 + xy: 1043, 272 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-source-tiny +block-liquid-junction-tiny rotate: false - xy: 603, 2 + xy: 1539, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-source-xlarge +block-liquid-junction-xlarge rotate: false xy: 231, 608 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-tank-large +block-liquid-router-large rotate: false - xy: 569, 356 + xy: 519, 20 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-tank-medium +block-liquid-router-medium rotate: false - xy: 1131, 912 + xy: 859, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-tank-small +block-liquid-router-small rotate: false - xy: 947, 552 + xy: 1069, 298 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-tank-tiny +block-liquid-router-tiny rotate: false - xy: 621, 2 + xy: 1557, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-tank-xlarge +block-liquid-router-xlarge rotate: false xy: 231, 558 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-void-large +block-liquid-source-large rotate: false - xy: 619, 490 + xy: 585, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-void-medium +block-liquid-source-medium rotate: false - xy: 1117, 878 + xy: 961, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-void-small +block-liquid-source-small rotate: false - xy: 1063, 656 + xy: 1095, 324 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-void-tiny +block-liquid-source-tiny rotate: false - xy: 639, 2 + xy: 1575, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-void-xlarge +block-liquid-source-xlarge rotate: false xy: 745, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-magmarock-large +block-liquid-tank-large rotate: false - xy: 661, 490 + xy: 627, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-magmarock-medium +block-liquid-tank-medium rotate: false - xy: 961, 708 + xy: 927, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-magmarock-small +block-liquid-tank-small rotate: false - xy: 1037, 630 + xy: 1121, 350 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-magmarock-tiny +block-liquid-tank-tiny rotate: false - xy: 657, 2 + xy: 1593, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-magmarock-xlarge +block-liquid-tank-xlarge rotate: false xy: 151, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-conveyor-large +block-liquid-void-large rotate: false - xy: 703, 490 + xy: 669, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-conveyor-medium +block-liquid-void-medium rotate: false - xy: 995, 742 + xy: 893, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-small +block-liquid-void-small rotate: false - xy: 1011, 604 + xy: 939, 142 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-conveyor-tiny +block-liquid-void-tiny rotate: false - xy: 675, 2 + xy: 1611, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-conveyor-xlarge +block-liquid-void-xlarge rotate: false xy: 151, 458 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-driver-large +block-magmarock-large rotate: false - xy: 753, 532 + xy: 711, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-driver-medium +block-magmarock-medium rotate: false - xy: 1097, 844 + xy: 1029, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-driver-small +block-magmarock-small rotate: false - xy: 985, 578 + xy: 965, 168 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-driver-tiny +block-magmarock-tiny rotate: false - xy: 693, 10 + xy: 1629, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-driver-xlarge +block-magmarock-xlarge rotate: false xy: 201, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-drill-large +block-mass-conveyor-large rotate: false - xy: 745, 490 + xy: 753, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-drill-medium +block-mass-conveyor-medium rotate: false - xy: 1063, 810 + xy: 995, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-drill-small +block-mass-conveyor-small rotate: false - xy: 973, 552 + xy: 991, 194 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-drill-tiny +block-mass-conveyor-tiny rotate: false - xy: 711, 10 + xy: 1647, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-drill-xlarge +block-mass-conveyor-xlarge rotate: false xy: 151, 408 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-pump-large +block-mass-driver-large rotate: false - xy: 795, 536 + xy: 753, 490 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-pump-medium +block-mass-driver-medium rotate: false - xy: 1029, 776 + xy: 961, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-pump-small +block-mass-driver-small rotate: false - xy: 1089, 656 + xy: 1017, 220 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-pump-tiny +block-mass-driver-tiny rotate: false - xy: 729, 10 + xy: 1665, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-pump-xlarge +block-mass-driver-xlarge rotate: false xy: 201, 458 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-meltdown-large +block-mechanical-drill-large rotate: false - xy: 837, 536 + xy: 753, 448 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-meltdown-medium +block-mechanical-drill-medium rotate: false - xy: 1165, 912 + xy: 927, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-meltdown-small +block-mechanical-drill-small rotate: false - xy: 1063, 630 + xy: 1043, 246 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-meltdown-tiny +block-mechanical-drill-tiny rotate: false - xy: 747, 10 + xy: 1683, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-meltdown-xlarge +block-mechanical-drill-xlarge rotate: false xy: 151, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-melter-large +block-mechanical-pump-large rotate: false - xy: 561, 306 + xy: 753, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-melter-medium +block-mechanical-pump-medium rotate: false - xy: 1151, 878 + xy: 893, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-melter-small +block-mechanical-pump-small rotate: false - xy: 1037, 604 + xy: 1069, 272 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-melter-tiny +block-mechanical-pump-tiny rotate: false - xy: 765, 10 + xy: 1701, 793 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-melter-xlarge +block-mechanical-pump-xlarge rotate: false xy: 201, 408 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mend-projector-large +block-meltdown-large rotate: false - xy: 561, 264 + xy: 795, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mend-projector-medium +block-meltdown-medium rotate: false - xy: 995, 708 + xy: 1063, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mend-projector-small +block-meltdown-small rotate: false - xy: 1011, 578 + xy: 1095, 298 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mend-projector-tiny +block-meltdown-tiny rotate: false - xy: 783, 10 + xy: 1191, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mend-projector-xlarge +block-meltdown-xlarge rotate: false xy: 151, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mender-large +block-melter-large rotate: false - xy: 561, 222 + xy: 795, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mender-medium +block-melter-medium rotate: false - xy: 1131, 844 + xy: 1029, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mender-small +block-melter-small rotate: false - xy: 999, 552 + xy: 1121, 324 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mender-tiny +block-melter-tiny rotate: false - xy: 801, 10 + xy: 1209, 400 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mender-xlarge +block-melter-xlarge rotate: false xy: 201, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-message-large +block-mend-projector-large rotate: false - xy: 561, 180 + xy: 837, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-message-medium +block-mend-projector-medium rotate: false - xy: 1097, 810 + xy: 995, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-message-small +block-mend-projector-small rotate: false - xy: 1115, 656 + xy: 939, 116 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-message-tiny +block-mend-projector-tiny rotate: false - xy: 819, 10 + xy: 1227, 400 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-message-xlarge +block-mend-projector-xlarge rotate: false xy: 151, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-2-large +block-mender-large rotate: false - xy: 561, 138 + xy: 795, 452 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-2-medium +block-mender-medium rotate: false - xy: 1063, 776 + xy: 961, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-2-small +block-mender-small rotate: false - xy: 1089, 630 + xy: 965, 142 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-2-tiny +block-mender-tiny rotate: false - xy: 837, 10 + xy: 1209, 382 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-2-xlarge +block-mender-xlarge rotate: false xy: 201, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-3-large +block-message-large rotate: false - xy: 561, 96 + xy: 837, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-3-medium +block-message-medium rotate: false - xy: 1029, 742 + xy: 927, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-3-small +block-message-small rotate: false - xy: 1063, 604 + xy: 991, 168 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-3-tiny +block-message-tiny rotate: false - xy: 855, 10 + xy: 1227, 382 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-3-xlarge +block-message-xlarge rotate: false xy: 151, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-5-large +block-metal-floor-2-large rotate: false - xy: 561, 54 + xy: 795, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-5-medium +block-metal-floor-2-medium rotate: false - xy: 1199, 912 + xy: 1097, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-5-small +block-metal-floor-2-small rotate: false - xy: 1037, 578 + xy: 1017, 194 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-5-tiny +block-metal-floor-2-tiny rotate: false - xy: 873, 10 + xy: 1245, 382 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-5-xlarge +block-metal-floor-2-xlarge rotate: false xy: 201, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-damaged-large +block-metal-floor-3-large rotate: false - xy: 561, 12 + xy: 837, 452 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-damaged-medium +block-metal-floor-3-medium rotate: false - xy: 1185, 878 + xy: 1063, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-damaged-small +block-metal-floor-3-small rotate: false - xy: 1025, 552 + xy: 1043, 220 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-damaged-tiny +block-metal-floor-3-tiny rotate: false - xy: 1701, 753 + xy: 1263, 382 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-damaged-xlarge +block-metal-floor-3-xlarge rotate: false xy: 151, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-large +block-metal-floor-5-large rotate: false - xy: 611, 440 + xy: 837, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-medium +block-metal-floor-5-medium rotate: false - xy: 1165, 844 + xy: 1029, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-small +block-metal-floor-5-small rotate: false - xy: 1141, 656 + xy: 1069, 246 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-tiny +block-metal-floor-5-tiny rotate: false - xy: 1735, 787 + xy: 1281, 382 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-xlarge +block-metal-floor-5-xlarge rotate: false xy: 201, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-moss-large +block-metal-floor-damaged-large rotate: false - xy: 611, 398 + xy: 569, 356 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-moss-medium +block-metal-floor-damaged-medium rotate: false - xy: 1131, 810 + xy: 995, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-moss-small +block-metal-floor-damaged-small rotate: false - xy: 1115, 630 + xy: 1095, 272 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-moss-tiny +block-metal-floor-damaged-tiny rotate: false - xy: 1769, 821 + xy: 1173, 360 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-moss-xlarge +block-metal-floor-damaged-xlarge rotate: false xy: 151, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multi-press-large +block-metal-floor-large rotate: false - xy: 611, 356 + xy: 561, 314 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multi-press-medium +block-metal-floor-medium rotate: false - xy: 1097, 776 + xy: 961, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multi-press-small +block-metal-floor-small rotate: false - xy: 1089, 604 + xy: 1121, 298 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multi-press-tiny +block-metal-floor-tiny rotate: false - xy: 1787, 823 + xy: 1173, 342 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multi-press-xlarge +block-metal-floor-xlarge rotate: false xy: 201, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-oil-extractor-large +block-moss-large rotate: false - xy: 603, 314 + xy: 561, 272 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-oil-extractor-medium +block-moss-medium rotate: false - xy: 1063, 742 + xy: 1131, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-oil-extractor-small +block-moss-small rotate: false - xy: 1063, 578 + xy: 939, 90 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-oil-extractor-tiny +block-moss-tiny rotate: false - xy: 1805, 823 + xy: 1173, 324 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-oil-extractor-xlarge +block-moss-xlarge rotate: false xy: 151, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-coal-large +block-multi-press-large rotate: false - xy: 603, 272 + xy: 561, 230 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-coal-medium +block-multi-press-medium rotate: false - xy: 1029, 708 + xy: 1097, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-coal-small +block-multi-press-small rotate: false - xy: 1051, 552 + xy: 965, 116 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-coal-tiny +block-multi-press-tiny rotate: false - xy: 1823, 823 + xy: 1173, 306 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-coal-xlarge +block-multi-press-xlarge rotate: false xy: 201, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-copper-large +block-oil-extractor-large rotate: false - xy: 603, 230 + xy: 561, 188 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-copper-medium +block-oil-extractor-medium rotate: false - xy: 1233, 912 + xy: 1063, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-copper-small +block-oil-extractor-small rotate: false - xy: 1167, 656 + xy: 991, 142 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-copper-tiny +block-oil-extractor-tiny rotate: false - xy: 1841, 823 + xy: 1173, 288 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-copper-xlarge +block-oil-extractor-xlarge rotate: false xy: 201, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-lead-large +block-ore-coal-large rotate: false - xy: 603, 188 + xy: 561, 146 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-lead-medium +block-ore-coal-medium rotate: false - xy: 1219, 878 + xy: 1029, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-lead-small +block-ore-coal-small rotate: false - xy: 1141, 630 + xy: 1017, 168 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-lead-tiny +block-ore-coal-tiny rotate: false - xy: 1859, 823 + xy: 1173, 270 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-lead-xlarge +block-ore-coal-xlarge rotate: false xy: 251, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-scrap-large +block-ore-copper-large rotate: false - xy: 603, 146 + xy: 561, 104 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-scrap-medium +block-ore-copper-medium rotate: false - xy: 1199, 844 + xy: 995, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-scrap-small +block-ore-copper-small rotate: false - xy: 1115, 604 + xy: 1043, 194 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-scrap-tiny +block-ore-copper-tiny rotate: false - xy: 1907, 833 + xy: 1173, 252 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-scrap-xlarge +block-ore-copper-xlarge rotate: false xy: 251, 458 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-thorium-large +block-ore-lead-large rotate: false - xy: 603, 104 + xy: 561, 62 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-thorium-medium +block-ore-lead-medium rotate: false - xy: 1165, 810 + xy: 1165, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-thorium-small +block-ore-lead-small rotate: false - xy: 1089, 578 + xy: 1069, 220 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-thorium-tiny +block-ore-lead-tiny rotate: false - xy: 1059, 516 + xy: 1173, 234 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-thorium-xlarge +block-ore-lead-xlarge rotate: false xy: 251, 408 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-titanium-large +block-ore-scrap-large rotate: false - xy: 603, 62 + xy: 561, 20 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-titanium-medium +block-ore-scrap-medium rotate: false - xy: 1131, 776 + xy: 1131, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-titanium-small +block-ore-scrap-small rotate: false - xy: 1077, 552 + xy: 1095, 246 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-titanium-tiny +block-ore-scrap-tiny rotate: false - xy: 1077, 516 + xy: 1173, 216 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-titanium-xlarge +block-ore-scrap-xlarge rotate: false xy: 251, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-ore-thorium-large rotate: false - xy: 603, 20 + xy: 611, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-ore-thorium-medium rotate: false - xy: 1097, 742 + xy: 1097, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-ore-thorium-small rotate: false - xy: 1193, 656 + xy: 1121, 272 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-ore-thorium-tiny rotate: false - xy: 1095, 516 + xy: 1173, 198 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-ore-thorium-xlarge rotate: false xy: 251, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large - rotate: false - xy: 653, 448 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-overflow-gate-medium - rotate: false - xy: 1063, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-overflow-gate-small - rotate: false - xy: 1167, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-overflow-gate-tiny - rotate: false - xy: 1113, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-overflow-gate-xlarge - rotate: false - xy: 251, 258 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-pebbles-large - rotate: false - xy: 653, 406 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pebbles-medium - rotate: false - xy: 1267, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pebbles-small - rotate: false - xy: 1141, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pebbles-tiny - rotate: false - xy: 1131, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pebbles-xlarge - rotate: false - xy: 251, 208 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-phase-conduit-large - rotate: false - xy: 695, 448 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-conduit-medium - rotate: false - xy: 1253, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-phase-conduit-small - rotate: false - xy: 1115, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-phase-conduit-tiny - rotate: false - xy: 1149, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-phase-conduit-xlarge - rotate: false - xy: 251, 158 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-phase-conveyor-large +block-ore-titanium-large rotate: false xy: 653, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-ore-titanium-medium rotate: false - xy: 1233, 844 + xy: 1063, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-ore-titanium-small rotate: false - xy: 1103, 552 + xy: 939, 64 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-ore-titanium-tiny rotate: false - xy: 1167, 516 + xy: 1173, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-ore-titanium-xlarge rotate: false - xy: 251, 108 + xy: 251, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large - rotate: false - xy: 695, 406 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-large - rotate: false - xy: 737, 448 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium - rotate: false - xy: 1199, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-phase-wall-large-small - rotate: false - xy: 1219, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-phase-wall-large-tiny - rotate: false - xy: 1185, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-phase-wall-large-xlarge - rotate: false - xy: 251, 58 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-phase-wall-medium - rotate: false - xy: 1165, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-phase-wall-small - rotate: false - xy: 1193, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-phase-wall-tiny - rotate: false - xy: 1203, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-phase-wall-xlarge - rotate: false - xy: 151, 8 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-phase-weaver-large +block-overdrive-projector-large rotate: false xy: 695, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-overdrive-projector-medium rotate: false - xy: 1131, 742 + xy: 1029, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-overdrive-projector-small rotate: false - xy: 1167, 604 + xy: 965, 90 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-overdrive-projector-tiny rotate: false - xy: 1221, 516 + xy: 1173, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-overdrive-projector-xlarge rotate: false - xy: 201, 8 + xy: 251, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large - rotate: false - xy: 737, 406 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pine-medium - rotate: false - xy: 1097, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pine-small - rotate: false - xy: 1141, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pine-tiny - rotate: false - xy: 1239, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pine-xlarge - rotate: false - xy: 251, 8 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plastanium-compressor-large +block-overflow-gate-large rotate: false xy: 737, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium +block-overflow-gate-medium rotate: false - xy: 1301, 912 + xy: 1199, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-overflow-gate-small rotate: false - xy: 1129, 552 + xy: 991, 116 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-overflow-gate-tiny rotate: false - xy: 1257, 516 + xy: 1173, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-overflow-gate-xlarge rotate: false - xy: 281, 619 + xy: 251, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-conveyor-large - rotate: false - xy: 787, 490 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-medium - rotate: false - xy: 1287, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-small - rotate: false - xy: 1245, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-tiny - rotate: false - xy: 1275, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-xlarge - rotate: false - xy: 281, 569 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plastanium-wall-large - rotate: false - xy: 779, 448 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-large - rotate: false - xy: 779, 406 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium - rotate: false - xy: 1267, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-small - rotate: false - xy: 1219, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-tiny - rotate: false - xy: 1293, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-xlarge - rotate: false - xy: 301, 519 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plastanium-wall-medium - rotate: false - xy: 1233, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plastanium-wall-small - rotate: false - xy: 1193, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plastanium-wall-tiny - rotate: false - xy: 1311, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plastanium-wall-xlarge - rotate: false - xy: 301, 469 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plated-conduit-large +block-pebbles-large rotate: false xy: 779, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plated-conduit-medium +block-pebbles-medium rotate: false - xy: 1199, 776 + xy: 1165, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plated-conduit-small +block-pebbles-small rotate: false - xy: 1167, 578 + xy: 1017, 142 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plated-conduit-tiny +block-pebbles-tiny rotate: false - xy: 1329, 516 + xy: 1173, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plated-conduit-xlarge +block-pebbles-xlarge rotate: false - xy: 301, 419 + xy: 251, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-phase-conduit-large rotate: false - xy: 829, 494 + xy: 821, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pneumatic-drill-medium +block-phase-conduit-medium rotate: false - xy: 1165, 742 + xy: 1131, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pneumatic-drill-small +block-phase-conduit-small rotate: false - xy: 1155, 552 + xy: 1043, 168 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-phase-conduit-tiny rotate: false - xy: 1347, 516 + xy: 1173, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-phase-conduit-xlarge rotate: false - xy: 301, 369 + xy: 251, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large - rotate: false - xy: 645, 314 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-large - rotate: false - xy: 645, 272 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium - rotate: false - xy: 1131, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-node-large-small - rotate: false - xy: 1271, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-node-large-tiny - rotate: false - xy: 1365, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-node-large-xlarge - rotate: false - xy: 301, 319 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-node-medium - rotate: false - xy: 1335, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-node-small - rotate: false - xy: 1245, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-node-tiny - rotate: false - xy: 1383, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-node-xlarge - rotate: false - xy: 301, 269 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-source-large - rotate: false - xy: 645, 230 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-source-medium - rotate: false - xy: 1321, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-source-small - rotate: false - xy: 1219, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-source-tiny - rotate: false - xy: 1401, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-source-xlarge - rotate: false - xy: 301, 219 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-void-large - rotate: false - xy: 645, 188 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-void-medium - rotate: false - xy: 1301, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-void-small - rotate: false - xy: 1193, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-void-tiny - rotate: false - xy: 1419, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-void-xlarge - rotate: false - xy: 301, 169 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-pulse-conduit-large - rotate: false - xy: 645, 146 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pulse-conduit-medium - rotate: false - xy: 1267, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pulse-conduit-small - rotate: false - xy: 1181, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pulse-conduit-tiny - rotate: false - xy: 1437, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pulse-conduit-xlarge - rotate: false - xy: 301, 119 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-pulverizer-large - rotate: false - xy: 645, 104 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pulverizer-medium - rotate: false - xy: 1233, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pulverizer-small - rotate: false - xy: 1297, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pulverizer-tiny - rotate: false - xy: 1455, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pulverizer-xlarge - rotate: false - xy: 301, 69 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-pyratite-mixer-large - rotate: false - xy: 645, 62 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pyratite-mixer-medium - rotate: false - xy: 1199, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pyratite-mixer-small - rotate: false - xy: 1271, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pyratite-mixer-tiny - rotate: false - xy: 1473, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pyratite-mixer-xlarge - rotate: false - xy: 301, 19 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-repair-point-large - rotate: false - xy: 645, 20 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-repair-point-medium - rotate: false - xy: 1165, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-repair-point-small - rotate: false - xy: 1245, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-repair-point-tiny - rotate: false - xy: 1491, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-repair-point-xlarge - rotate: false - xy: 795, 878 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ripple-large - rotate: false - xy: 687, 322 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ripple-medium - rotate: false - xy: 1369, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ripple-small - rotate: false - xy: 1219, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ripple-tiny - rotate: false - xy: 1509, 516 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ripple-xlarge - rotate: false - xy: 309, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-rock-large - rotate: false - xy: 687, 280 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-rock-medium - rotate: false - xy: 1355, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-rock-small - rotate: false - xy: 1207, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-rock-tiny - rotate: false - xy: 1051, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-rock-xlarge - rotate: false - xy: 309, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-rocks-large - rotate: false - xy: 729, 322 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-rocks-medium - rotate: false - xy: 1335, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-rocks-small - rotate: false - xy: 1323, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-rocks-tiny - rotate: false - xy: 1051, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-rocks-xlarge - rotate: false - xy: 359, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-rotary-pump-large - rotate: false - xy: 687, 238 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-rotary-pump-medium - rotate: false - xy: 1301, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-rotary-pump-small - rotate: false - xy: 1297, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-rotary-pump-tiny - rotate: false - xy: 1069, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-rotary-pump-xlarge - rotate: false - xy: 309, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-router-large - rotate: false - xy: 729, 280 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-router-medium - rotate: false - xy: 1267, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-router-small - rotate: false - xy: 1271, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-router-tiny - rotate: false - xy: 1051, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-router-xlarge - rotate: false - xy: 359, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-rtg-generator-large - rotate: false - xy: 771, 322 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-rtg-generator-medium - rotate: false - xy: 1233, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-rtg-generator-small - rotate: false - xy: 1245, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-rtg-generator-tiny - rotate: false - xy: 1069, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-rtg-generator-xlarge - rotate: false - xy: 409, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-salt-large - rotate: false - xy: 687, 196 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-salt-medium - rotate: false - xy: 1199, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-salt-small - rotate: false - xy: 1233, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-salt-tiny - rotate: false - xy: 1087, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-salt-xlarge - rotate: false - xy: 359, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-saltrocks-large - rotate: false - xy: 729, 238 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-saltrocks-medium - rotate: false - xy: 1403, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-saltrocks-small - rotate: false - xy: 1349, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-saltrocks-tiny - rotate: false - xy: 1051, 444 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-saltrocks-xlarge - rotate: false - xy: 409, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-salvo-large - rotate: false - xy: 771, 280 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-salvo-medium - rotate: false - xy: 1389, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-salvo-small - rotate: false - xy: 1323, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-salvo-tiny - rotate: false - xy: 1069, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-salvo-xlarge - rotate: false - xy: 459, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sand-boulder-large - rotate: false - xy: 687, 154 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-boulder-medium - rotate: false - xy: 1369, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-boulder-small - rotate: false - xy: 1297, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-boulder-tiny - rotate: false - xy: 1087, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-boulder-xlarge - rotate: false - xy: 409, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sand-large - rotate: false - xy: 729, 196 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-medium - rotate: false - xy: 1335, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-small - rotate: false - xy: 1271, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-tiny - rotate: false - xy: 1105, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-large - rotate: false - xy: 771, 238 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-water-medium - rotate: false - xy: 1301, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-water-small - rotate: false - xy: 1259, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-water-tiny - rotate: false - xy: 1051, 426 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-xlarge - rotate: false - xy: 459, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sand-xlarge - rotate: false - xy: 509, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sandrocks-large - rotate: false - xy: 687, 112 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sandrocks-medium - rotate: false - xy: 1267, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sandrocks-small - rotate: false - xy: 1375, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sandrocks-tiny - rotate: false - xy: 1069, 444 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sandrocks-xlarge - rotate: false - xy: 459, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scatter-large - rotate: false - xy: 729, 154 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scatter-medium - rotate: false - xy: 1233, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scatter-small - rotate: false - xy: 1349, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scatter-tiny - rotate: false - xy: 1087, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scatter-xlarge - rotate: false - xy: 509, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scorch-large - rotate: false - xy: 771, 196 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scorch-medium - rotate: false - xy: 1437, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scorch-small - rotate: false - xy: 1323, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scorch-tiny - rotate: false - xy: 1105, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scorch-xlarge - rotate: false - xy: 559, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-large - rotate: false - xy: 687, 70 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-medium - rotate: false - xy: 1471, 912 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-small - rotate: false - xy: 1297, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-tiny - rotate: false - xy: 1123, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-xlarge - rotate: false - xy: 509, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-large - rotate: false - xy: 729, 112 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-medium - rotate: false - xy: 1423, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-small - rotate: false - xy: 1285, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-tiny - rotate: false - xy: 1051, 408 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-xlarge - rotate: false - xy: 559, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-large - rotate: false - xy: 771, 154 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-large - rotate: false - xy: 687, 28 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium - rotate: false - xy: 1403, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-large-small - rotate: false - xy: 1401, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-large-tiny - rotate: false - xy: 1069, 426 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-large-xlarge - rotate: false - xy: 609, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-medium - rotate: false - xy: 1369, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-small - rotate: false - xy: 1375, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-tiny - rotate: false - xy: 1087, 444 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-xlarge - rotate: false - xy: 559, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-separator-large - rotate: false - xy: 729, 70 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-separator-medium - rotate: false - xy: 1335, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-separator-small - rotate: false - xy: 1349, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-separator-tiny - rotate: false - xy: 1105, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-separator-xlarge - rotate: false - xy: 609, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shale-boulder-large - rotate: false - xy: 771, 112 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shale-boulder-medium - rotate: false - xy: 1301, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shale-boulder-small - rotate: false - xy: 1323, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-shale-boulder-tiny - rotate: false - xy: 1123, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-shale-boulder-xlarge - rotate: false - xy: 659, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shale-large - rotate: false - xy: 729, 28 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shale-medium - rotate: false - xy: 1267, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shale-small - rotate: false - xy: 1311, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-shale-tiny - rotate: false - xy: 1141, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-shale-xlarge - rotate: false - xy: 609, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shalerocks-large - rotate: false - xy: 771, 70 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shalerocks-medium - rotate: false - xy: 1457, 878 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shalerocks-small - rotate: false - xy: 1427, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-shalerocks-tiny - rotate: false - xy: 1051, 390 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-shalerocks-xlarge - rotate: false - xy: 659, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shock-mine-large - rotate: false - xy: 771, 28 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shock-mine-medium - rotate: false - xy: 1437, 844 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shock-mine-small - rotate: false - xy: 1401, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-shock-mine-tiny - rotate: false - xy: 1069, 408 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-shock-mine-xlarge - rotate: false - xy: 709, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shrubs-large - rotate: false - xy: 821, 448 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shrubs-medium - rotate: false - xy: 1403, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shrubs-small - rotate: false - xy: 1375, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-shrubs-tiny - rotate: false - xy: 1087, 426 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-shrubs-xlarge - rotate: false - xy: 659, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-silicon-smelter-large - rotate: false - xy: 821, 406 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-silicon-smelter-medium - rotate: false - xy: 1369, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-silicon-smelter-small - rotate: false - xy: 1349, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-silicon-smelter-tiny - rotate: false - xy: 1105, 444 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-silicon-smelter-xlarge - rotate: false - xy: 709, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-slag-large - rotate: false - xy: 821, 364 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-slag-medium - rotate: false - xy: 1335, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-slag-small - rotate: false - xy: 1337, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-slag-tiny - rotate: false - xy: 1123, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-slag-xlarge - rotate: false - xy: 709, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snow-large - rotate: false - xy: 813, 322 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-medium - rotate: false - xy: 1301, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-large - rotate: false - xy: 813, 280 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-pine-medium - rotate: false - xy: 1437, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-small - rotate: false - xy: 1453, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snow-pine-tiny - rotate: false - xy: 1141, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snow-pine-xlarge - rotate: false - xy: 759, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snow-small - rotate: false - xy: 1427, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snow-tiny - rotate: false - xy: 1159, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snow-xlarge - rotate: false - xy: 759, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snowrock-large - rotate: false - xy: 813, 238 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snowrock-medium - rotate: false - xy: 1403, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrock-small - rotate: false - xy: 1401, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snowrock-tiny - rotate: false - xy: 1051, 372 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snowrock-xlarge - rotate: false - xy: 759, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snowrocks-large - rotate: false - xy: 813, 196 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snowrocks-medium - rotate: false - xy: 1369, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrocks-small - rotate: false - xy: 1375, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snowrocks-tiny - rotate: false - xy: 1069, 390 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snowrocks-xlarge - rotate: false - xy: 809, 828 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-solar-panel-large - rotate: false - xy: 813, 154 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-large - rotate: false - xy: 813, 112 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 1335, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-solar-panel-large-small - rotate: false - xy: 1363, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-solar-panel-large-tiny - rotate: false - xy: 1087, 408 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-solar-panel-large-xlarge - rotate: false - xy: 809, 778 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-solar-panel-medium - rotate: false - xy: 1437, 776 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-solar-panel-small - rotate: false - xy: 1453, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-solar-panel-tiny - rotate: false - xy: 1105, 426 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-solar-panel-xlarge - rotate: false - xy: 809, 728 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sorter-large - rotate: false - xy: 813, 70 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sorter-medium - rotate: false - xy: 1403, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sorter-small - rotate: false - xy: 1427, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sorter-tiny - rotate: false - xy: 1123, 444 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sorter-xlarge - rotate: false - xy: 809, 678 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spawn-large - rotate: false - xy: 813, 28 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spawn-medium - rotate: false - xy: 1369, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spawn-small - rotate: false - xy: 1401, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spawn-tiny - rotate: false - xy: 1141, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spawn-xlarge - rotate: false - xy: 331, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spectre-large - rotate: false - xy: 871, 494 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spectre-medium - rotate: false - xy: 1437, 742 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spectre-small - rotate: false - xy: 1389, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spectre-tiny - rotate: false - xy: 1159, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spectre-xlarge - rotate: false - xy: 331, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-cluster-large - rotate: false - xy: 863, 452 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-cluster-medium - rotate: false - xy: 1403, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spore-cluster-small - rotate: false - xy: 1453, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-cluster-tiny - rotate: false - xy: 1177, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-cluster-xlarge - rotate: false - xy: 381, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-moss-large - rotate: false - xy: 863, 410 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-moss-medium - rotate: false - xy: 1437, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spore-moss-small - rotate: false - xy: 1427, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-moss-tiny - rotate: false - xy: 1051, 354 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-moss-xlarge - rotate: false - xy: 381, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-pine-large +block-phase-conveyor-large rotate: false xy: 863, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-pine-medium +block-phase-conveyor-medium rotate: false - xy: 1505, 907 + xy: 1097, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-pine-small +block-phase-conveyor-small rotate: false - xy: 1415, 552 + xy: 1069, 194 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-pine-tiny +block-phase-conveyor-tiny rotate: false - xy: 1069, 372 + xy: 1173, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-pine-xlarge +block-phase-conveyor-xlarge + rotate: false + xy: 151, 8 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-wall-large + rotate: false + xy: 603, 314 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-large + rotate: false + xy: 603, 272 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-medium + rotate: false + xy: 1063, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-wall-large-small + rotate: false + xy: 1095, 220 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-wall-large-tiny + rotate: false + xy: 1173, 72 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-wall-large-xlarge + rotate: false + xy: 201, 8 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-wall-medium + rotate: false + xy: 1233, 836 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-wall-small + rotate: false + xy: 1121, 246 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-wall-tiny + rotate: false + xy: 1173, 54 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-wall-xlarge + rotate: false + xy: 251, 8 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-weaver-large + rotate: false + xy: 603, 230 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-weaver-medium + rotate: false + xy: 1199, 802 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-weaver-small + rotate: false + xy: 939, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-weaver-tiny + rotate: false + xy: 1173, 36 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-weaver-xlarge + rotate: false + xy: 281, 619 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pine-large + rotate: false + xy: 603, 188 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pine-medium + rotate: false + xy: 1165, 768 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pine-small + rotate: false + xy: 965, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pine-tiny + rotate: false + xy: 1173, 18 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pine-xlarge + rotate: false + xy: 281, 569 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-compressor-large + rotate: false + xy: 603, 146 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-compressor-medium + rotate: false + xy: 1131, 734 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-compressor-small + rotate: false + xy: 991, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-compressor-tiny + rotate: false + xy: 1191, 368 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-compressor-xlarge + rotate: false + xy: 301, 519 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-large + rotate: false + xy: 603, 104 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-medium + rotate: false + xy: 1097, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-small + rotate: false + xy: 1017, 116 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-tiny + rotate: false + xy: 1191, 350 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-xlarge + rotate: false + xy: 301, 469 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-wall-large + rotate: false + xy: 603, 62 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-large + rotate: false + xy: 603, 20 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-medium + rotate: false + xy: 1267, 836 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-small + rotate: false + xy: 1043, 142 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-tiny + rotate: false + xy: 1209, 364 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-xlarge + rotate: false + xy: 301, 419 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-wall-medium + rotate: false + xy: 1233, 802 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-wall-small + rotate: false + xy: 1069, 168 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-wall-tiny + rotate: false + xy: 1191, 332 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-wall-xlarge + rotate: false + xy: 301, 369 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plated-conduit-large + rotate: false + xy: 645, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plated-conduit-medium + rotate: false + xy: 1199, 768 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plated-conduit-small + rotate: false + xy: 1095, 194 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plated-conduit-tiny + rotate: false + xy: 1209, 346 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plated-conduit-xlarge + rotate: false + xy: 301, 319 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pneumatic-drill-large + rotate: false + xy: 645, 280 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pneumatic-drill-medium + rotate: false + xy: 1165, 734 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pneumatic-drill-small + rotate: false + xy: 1121, 220 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pneumatic-drill-tiny + rotate: false + xy: 1227, 364 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pneumatic-drill-xlarge + rotate: false + xy: 301, 269 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-node-large + rotate: false + xy: 687, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-large + rotate: false + xy: 645, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-medium + rotate: false + xy: 1131, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-node-large-small + rotate: false + xy: 965, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-node-large-tiny + rotate: false + xy: 1191, 314 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-node-large-xlarge + rotate: false + xy: 301, 219 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-node-medium + rotate: false + xy: 1267, 802 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-node-small + rotate: false + xy: 991, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-node-tiny + rotate: false + xy: 1209, 328 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-node-xlarge + rotate: false + xy: 301, 169 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-source-large + rotate: false + xy: 687, 280 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-source-medium + rotate: false + xy: 1233, 768 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-source-small + rotate: false + xy: 1017, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-source-tiny + rotate: false + xy: 1227, 346 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-source-xlarge + rotate: false + xy: 301, 119 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-void-large + rotate: false + xy: 729, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-void-medium + rotate: false + xy: 1199, 734 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-void-small + rotate: false + xy: 1043, 116 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-void-tiny + rotate: false + xy: 1245, 364 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-void-xlarge + rotate: false + xy: 301, 69 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pulse-conduit-large + rotate: false + xy: 645, 196 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pulse-conduit-medium + rotate: false + xy: 1165, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pulse-conduit-small + rotate: false + xy: 1069, 142 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pulse-conduit-tiny + rotate: false + xy: 1191, 296 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pulse-conduit-xlarge + rotate: false + xy: 301, 19 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pulverizer-large + rotate: false + xy: 687, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pulverizer-medium + rotate: false + xy: 1267, 768 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pulverizer-small + rotate: false + xy: 1095, 168 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pulverizer-tiny + rotate: false + xy: 1209, 310 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pulverizer-xlarge + rotate: false + xy: 795, 878 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pyratite-mixer-large + rotate: false + xy: 729, 280 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pyratite-mixer-medium + rotate: false + xy: 1233, 734 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pyratite-mixer-small + rotate: false + xy: 1121, 194 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pyratite-mixer-tiny + rotate: false + xy: 1227, 328 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pyratite-mixer-xlarge + rotate: false + xy: 309, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-repair-point-large + rotate: false + xy: 771, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-repair-point-medium + rotate: false + xy: 1199, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-repair-point-small + rotate: false + xy: 991, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-repair-point-tiny + rotate: false + xy: 1245, 346 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-repair-point-xlarge + rotate: false + xy: 309, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ripple-large + rotate: false + xy: 645, 154 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ripple-medium + rotate: false + xy: 1267, 734 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ripple-small + rotate: false + xy: 1017, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ripple-tiny + rotate: false + xy: 1263, 364 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ripple-xlarge + rotate: false + xy: 359, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-rock-large + rotate: false + xy: 687, 196 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-rock-medium + rotate: false + xy: 1233, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-rock-small + rotate: false + xy: 1043, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-rock-tiny + rotate: false + xy: 1191, 278 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-rock-xlarge + rotate: false + xy: 309, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-rocks-large + rotate: false + xy: 729, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-rocks-medium + rotate: false + xy: 1267, 700 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-rocks-small + rotate: false + xy: 1069, 116 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-rocks-tiny + rotate: false + xy: 1209, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-rocks-xlarge + rotate: false + xy: 359, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-rotary-pump-large + rotate: false + xy: 771, 280 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-rotary-pump-medium + rotate: false + xy: 881, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-rotary-pump-small + rotate: false + xy: 1095, 142 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-rotary-pump-tiny + rotate: false + xy: 1227, 310 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-rotary-pump-xlarge + rotate: false + xy: 409, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-router-large + rotate: false + xy: 645, 112 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-router-medium + rotate: false + xy: 881, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-router-small + rotate: false + xy: 1121, 168 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-router-tiny + rotate: false + xy: 1245, 328 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-router-xlarge + rotate: false + xy: 359, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-rtg-generator-large + rotate: false + xy: 687, 154 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-rtg-generator-medium + rotate: false + xy: 915, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-rtg-generator-small + rotate: false + xy: 1017, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-rtg-generator-tiny + rotate: false + xy: 1263, 346 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-rtg-generator-xlarge + rotate: false + xy: 409, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-salt-large + rotate: false + xy: 729, 196 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-salt-medium + rotate: false + xy: 881, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-salt-small + rotate: false + xy: 1043, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-salt-tiny + rotate: false + xy: 1281, 364 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-salt-xlarge + rotate: false + xy: 459, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-saltrocks-large + rotate: false + xy: 771, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-saltrocks-medium + rotate: false + xy: 949, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-saltrocks-small + rotate: false + xy: 1069, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-saltrocks-tiny + rotate: false + xy: 1191, 260 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-saltrocks-xlarge + rotate: false + xy: 409, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-salvo-large + rotate: false + xy: 645, 70 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-salvo-medium + rotate: false + xy: 915, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-salvo-small + rotate: false + xy: 1095, 116 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-salvo-tiny + rotate: false + xy: 1209, 274 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-salvo-xlarge + rotate: false + xy: 459, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-boulder-large + rotate: false + xy: 687, 112 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-boulder-medium + rotate: false + xy: 983, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-boulder-small + rotate: false + xy: 1121, 142 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-boulder-tiny + rotate: false + xy: 1227, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-boulder-xlarge + rotate: false + xy: 509, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-large + rotate: false + xy: 729, 154 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-medium + rotate: false + xy: 949, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-small + rotate: false + xy: 1043, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-tiny + rotate: false + xy: 1245, 310 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-large + rotate: false + xy: 771, 196 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-water-medium + rotate: false + xy: 915, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-water-small + rotate: false + xy: 1069, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-water-tiny + rotate: false + xy: 1263, 328 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-xlarge + rotate: false + xy: 459, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-xlarge + rotate: false + xy: 509, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sandrocks-large + rotate: false + xy: 645, 28 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sandrocks-medium + rotate: false + xy: 1017, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sandrocks-small + rotate: false + xy: 1095, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sandrocks-tiny + rotate: false + xy: 1281, 346 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sandrocks-xlarge + rotate: false + xy: 559, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scatter-large + rotate: false + xy: 687, 70 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scatter-medium + rotate: false + xy: 983, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scatter-small + rotate: false + xy: 1121, 116 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scatter-tiny + rotate: false + xy: 1191, 242 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scatter-xlarge + rotate: false + xy: 509, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scorch-large + rotate: false + xy: 729, 112 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scorch-medium + rotate: false + xy: 949, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scorch-small + rotate: false + xy: 1069, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scorch-tiny + rotate: false + xy: 1209, 256 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scorch-xlarge + rotate: false + xy: 559, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-large + rotate: false + xy: 771, 154 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-medium + rotate: false + xy: 1051, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-small + rotate: false + xy: 1095, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-tiny + rotate: false + xy: 1227, 274 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-xlarge + rotate: false + xy: 609, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-large + rotate: false + xy: 687, 28 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-medium + rotate: false + xy: 1017, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-small + rotate: false + xy: 1121, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-tiny + rotate: false + xy: 1245, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-xlarge + rotate: false + xy: 559, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scrap-wall-large + rotate: false + xy: 729, 70 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-large + rotate: false + xy: 771, 112 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-medium + rotate: false + xy: 983, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-large-small + rotate: false + xy: 1095, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scrap-wall-large-tiny + rotate: false + xy: 1263, 310 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scrap-wall-large-xlarge + rotate: false + xy: 609, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scrap-wall-medium + rotate: false + xy: 1085, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-small + rotate: false + xy: 1121, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scrap-wall-tiny + rotate: false + xy: 1281, 328 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scrap-wall-xlarge + rotate: false + xy: 659, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-separator-large + rotate: false + xy: 729, 28 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-separator-medium + rotate: false + xy: 1051, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-separator-small + rotate: false + xy: 1121, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-separator-tiny + rotate: false + xy: 1191, 224 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-separator-xlarge + rotate: false + xy: 609, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shale-boulder-large + rotate: false + xy: 771, 70 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shale-boulder-medium + rotate: false + xy: 1017, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-boulder-small + rotate: false + xy: 1147, 350 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shale-boulder-tiny + rotate: false + xy: 1209, 238 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shale-boulder-xlarge + rotate: false + xy: 659, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shale-large + rotate: false + xy: 771, 28 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shale-medium + rotate: false + xy: 1119, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-small + rotate: false + xy: 1147, 324 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shale-tiny + rotate: false + xy: 1227, 256 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shale-xlarge + rotate: false + xy: 709, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shalerocks-large + rotate: false + xy: 813, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shalerocks-medium + rotate: false + xy: 1085, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shalerocks-small + rotate: false + xy: 1147, 298 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shalerocks-tiny + rotate: false + xy: 1245, 274 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shalerocks-xlarge + rotate: false + xy: 659, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shock-mine-large + rotate: false + xy: 813, 280 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shock-mine-medium + rotate: false + xy: 1051, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shock-mine-small + rotate: false + xy: 1147, 272 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shock-mine-tiny + rotate: false + xy: 1263, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shock-mine-xlarge + rotate: false + xy: 709, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shrubs-large + rotate: false + xy: 813, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shrubs-medium + rotate: false + xy: 1153, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shrubs-small + rotate: false + xy: 1147, 246 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shrubs-tiny + rotate: false + xy: 1281, 310 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shrubs-xlarge + rotate: false + xy: 709, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-silicon-smelter-large + rotate: false + xy: 813, 196 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-silicon-smelter-medium + rotate: false + xy: 1119, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-silicon-smelter-small + rotate: false + xy: 1147, 220 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-silicon-smelter-tiny + rotate: false + xy: 1191, 206 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-silicon-smelter-xlarge + rotate: false + xy: 759, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-slag-large + rotate: false + xy: 813, 154 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-slag-medium + rotate: false + xy: 1085, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-slag-small + rotate: false + xy: 1147, 194 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-slag-tiny + rotate: false + xy: 1209, 220 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-slag-xlarge + rotate: false + xy: 759, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-large + rotate: false + xy: 813, 112 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-medium + rotate: false + xy: 1187, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-large + rotate: false + xy: 813, 70 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-pine-medium + rotate: false + xy: 1153, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-small + rotate: false + xy: 1147, 168 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-pine-tiny + rotate: false + xy: 1227, 238 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-pine-xlarge + rotate: false + xy: 759, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-small + rotate: false + xy: 1147, 142 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-tiny + rotate: false + xy: 1245, 256 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-xlarge + rotate: false + xy: 809, 828 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snowrock-large + rotate: false + xy: 813, 28 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snowrock-medium + rotate: false + xy: 1119, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snowrock-small + rotate: false + xy: 1147, 116 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snowrock-tiny + rotate: false + xy: 1263, 274 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snowrock-xlarge + rotate: false + xy: 809, 778 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snowrocks-large + rotate: false + xy: 855, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snowrocks-medium + rotate: false + xy: 1221, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snowrocks-small + rotate: false + xy: 1147, 90 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snowrocks-tiny + rotate: false + xy: 1281, 292 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snowrocks-xlarge + rotate: false + xy: 809, 728 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-solar-panel-large + rotate: false + xy: 855, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-large + rotate: false + xy: 855, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-medium + rotate: false + xy: 1187, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-solar-panel-large-small + rotate: false + xy: 1147, 64 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-solar-panel-large-tiny + rotate: false + xy: 1191, 188 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-solar-panel-large-xlarge + rotate: false + xy: 809, 678 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-solar-panel-medium + rotate: false + xy: 1153, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-solar-panel-small + rotate: false + xy: 1147, 38 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-solar-panel-tiny + rotate: false + xy: 1209, 202 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-solar-panel-xlarge + rotate: false + xy: 331, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sorter-large + rotate: false + xy: 855, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sorter-medium + rotate: false + xy: 1255, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sorter-small + rotate: false + xy: 1245, 400 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sorter-tiny + rotate: false + xy: 1227, 220 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sorter-xlarge + rotate: false + xy: 331, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spawn-large + rotate: false + xy: 855, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spawn-medium + rotate: false + xy: 1221, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spawn-small + rotate: false + xy: 1271, 426 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spawn-tiny + rotate: false + xy: 1245, 238 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spawn-xlarge + rotate: false + xy: 381, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spectre-large + rotate: false + xy: 855, 116 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spectre-medium + rotate: false + xy: 1187, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spectre-small + rotate: false + xy: 1271, 400 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spectre-tiny + rotate: false + xy: 1263, 256 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spectre-xlarge + rotate: false + xy: 381, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-cluster-large + rotate: false + xy: 855, 74 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spore-cluster-medium + rotate: false + xy: 1255, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-cluster-small + rotate: false + xy: 939, 12 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spore-cluster-tiny + rotate: false + xy: 1281, 274 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spore-cluster-xlarge rotate: false xy: 431, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-press-large +block-spore-moss-large rotate: false - xy: 879, 536 + xy: 855, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-press-medium +block-spore-moss-medium rotate: false - xy: 1539, 907 + xy: 1221, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-press-small +block-spore-moss-small rotate: false - xy: 1453, 578 + xy: 965, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-press-tiny +block-spore-moss-tiny rotate: false - xy: 1087, 390 + xy: 1191, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-press-xlarge +block-spore-moss-xlarge rotate: false xy: 431, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large - rotate: false - xy: 855, 322 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sporerocks-medium - rotate: false - xy: 1573, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sporerocks-small - rotate: false - xy: 1441, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sporerocks-tiny - rotate: false - xy: 1105, 408 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sporerocks-xlarge - rotate: false - xy: 481, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-stone-large - rotate: false - xy: 855, 280 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-stone-medium - rotate: false - xy: 1607, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-stone-small - rotate: false - xy: 1483, 682 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-stone-tiny - rotate: false - xy: 1123, 426 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-stone-xlarge - rotate: false - xy: 481, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-tower-large - rotate: false - xy: 855, 238 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-tower-medium - rotate: false - xy: 1641, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-tower-small - rotate: false - xy: 1479, 656 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-tower-tiny - rotate: false - xy: 1141, 444 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-tower-xlarge - rotate: false - xy: 531, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-wall-large - rotate: false - xy: 855, 196 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-large - rotate: false - xy: 855, 154 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 1675, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-wall-large-small - rotate: false - xy: 1479, 630 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-wall-large-tiny - rotate: false - xy: 1159, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-wall-large-xlarge - rotate: false - xy: 531, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-wall-medium - rotate: false - xy: 1709, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-wall-small - rotate: false - xy: 1479, 604 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-wall-tiny - rotate: false - xy: 1177, 480 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-wall-xlarge - rotate: false - xy: 581, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-swarmer-large - rotate: false - xy: 855, 112 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-swarmer-medium - rotate: false - xy: 1743, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-swarmer-small - rotate: false - xy: 1479, 578 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-swarmer-tiny - rotate: false - xy: 1195, 498 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-swarmer-xlarge - rotate: false - xy: 581, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tainted-water-large - rotate: false - xy: 855, 70 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tainted-water-medium - rotate: false - xy: 1777, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tainted-water-small - rotate: false - xy: 1467, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tainted-water-tiny - rotate: false - xy: 1051, 336 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tainted-water-xlarge - rotate: false - xy: 631, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tar-large - rotate: false - xy: 855, 28 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tar-medium - rotate: false - xy: 1811, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tar-small - rotate: false - xy: 1509, 685 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tar-tiny - rotate: false - xy: 1069, 354 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tar-xlarge - rotate: false - xy: 631, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tendrils-large - rotate: false - xy: 905, 452 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tendrils-medium - rotate: false - xy: 1845, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tendrils-small - rotate: false - xy: 1535, 685 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tendrils-tiny - rotate: false - xy: 1087, 372 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tendrils-xlarge - rotate: false - xy: 681, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thermal-generator-large - rotate: false - xy: 905, 410 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thermal-generator-medium - rotate: false - xy: 1879, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thermal-generator-small - rotate: false - xy: 1561, 685 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thermal-generator-tiny - rotate: false - xy: 1105, 390 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thermal-generator-xlarge - rotate: false - xy: 681, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thermal-pump-large - rotate: false - xy: 913, 494 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thermal-pump-medium - rotate: false - xy: 1913, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thermal-pump-small - rotate: false - xy: 1587, 685 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thermal-pump-tiny - rotate: false - xy: 1123, 408 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thermal-pump-xlarge - rotate: false - xy: 731, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thorium-reactor-large - rotate: false - xy: 905, 368 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thorium-reactor-medium - rotate: false - xy: 1947, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thorium-reactor-small - rotate: false - xy: 1613, 685 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thorium-reactor-tiny - rotate: false - xy: 1141, 426 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thorium-reactor-xlarge - rotate: false - xy: 731, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thorium-wall-large +block-spore-pine-large rotate: false xy: 897, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-spore-pine-medium + rotate: false + xy: 1255, 598 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-pine-small + rotate: false + xy: 991, 12 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spore-pine-tiny + rotate: false + xy: 1209, 184 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spore-pine-xlarge + rotate: false + xy: 481, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-press-large rotate: false xy: 897, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-medium +block-spore-press-medium rotate: false - xy: 1471, 844 + xy: 881, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-spore-press-small rotate: false - xy: 1639, 685 + xy: 1017, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-spore-press-tiny rotate: false - xy: 1159, 444 + xy: 1227, 202 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-spore-press-xlarge rotate: false - xy: 781, 628 + xy: 481, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium - rotate: false - xy: 1471, 810 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thorium-wall-small - rotate: false - xy: 1661, 711 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thorium-wall-tiny - rotate: false - xy: 1177, 462 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thorium-wall-xlarge - rotate: false - xy: 831, 628 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thruster-large +block-sporerocks-large rotate: false xy: 897, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-sporerocks-medium rotate: false - xy: 1471, 776 + xy: 915, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-sporerocks-small rotate: false - xy: 1665, 685 + xy: 1043, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-sporerocks-tiny rotate: false - xy: 1195, 480 + xy: 1245, 220 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-sporerocks-xlarge rotate: false - xy: 781, 578 + xy: 531, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-stone-large rotate: false xy: 897, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-conveyor-medium +block-stone-medium rotate: false - xy: 1471, 742 + xy: 949, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-stone-small rotate: false - xy: 1855, 841 + xy: 1069, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-stone-tiny rotate: false - xy: 1213, 498 + xy: 1263, 238 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-stone-xlarge rotate: false - xy: 831, 578 + xy: 531, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-surge-tower-large rotate: false xy: 897, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-surge-tower-medium + rotate: false + xy: 983, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-surge-tower-small + rotate: false + xy: 1095, 12 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-surge-tower-tiny + rotate: false + xy: 1281, 256 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-surge-tower-xlarge + rotate: false + xy: 581, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-surge-wall-large rotate: false xy: 897, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-medium - rotate: false - xy: 1471, 708 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-wall-large-small - rotate: false - xy: 1881, 843 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-titanium-wall-large-tiny - rotate: false - xy: 1051, 318 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-titanium-wall-large-xlarge - rotate: false - xy: 351, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-titanium-wall-medium - rotate: false - xy: 1981, 907 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-wall-small - rotate: false - xy: 1493, 552 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-titanium-wall-tiny - rotate: false - xy: 1069, 336 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-titanium-wall-xlarge - rotate: false - xy: 351, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-turbine-generator-large +block-surge-wall-large-large rotate: false xy: 897, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium +block-surge-wall-large-medium rotate: false - xy: 2015, 907 + xy: 1017, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-small +block-surge-wall-large-small rotate: false - xy: 1957, 829 + xy: 1121, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-turbine-generator-tiny +block-surge-wall-large-tiny rotate: false - xy: 1087, 354 + xy: 1191, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-turbine-generator-xlarge +block-surge-wall-large-xlarge rotate: false - xy: 401, 566 + xy: 581, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-underflow-gate-large +block-surge-wall-medium + rotate: false + xy: 1051, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-surge-wall-small + rotate: false + xy: 1147, 12 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-surge-wall-tiny + rotate: false + xy: 1209, 166 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-surge-wall-xlarge + rotate: false + xy: 631, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-swarmer-large rotate: false xy: 897, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-underflow-gate-medium +block-swarmer-medium rotate: false - xy: 1505, 873 + xy: 1085, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-underflow-gate-small +block-swarmer-small rotate: false - xy: 1983, 829 + xy: 1165, 396 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-underflow-gate-tiny +block-swarmer-tiny rotate: false - xy: 1105, 372 + xy: 1227, 184 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-underflow-gate-xlarge +block-swarmer-xlarge + rotate: false + xy: 631, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tainted-water-large + rotate: false + xy: 821, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tainted-water-medium + rotate: false + xy: 1119, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tainted-water-small + rotate: false + xy: 1279, 464 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tainted-water-tiny + rotate: false + xy: 1245, 202 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tainted-water-xlarge + rotate: false + xy: 681, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tar-large + rotate: false + xy: 863, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tar-medium + rotate: false + xy: 1153, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tar-small + rotate: false + xy: 1985, 915 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tar-tiny + rotate: false + xy: 1263, 220 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tar-xlarge + rotate: false + xy: 681, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tendrils-large + rotate: false + xy: 905, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tendrils-medium + rotate: false + xy: 1187, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tendrils-small + rotate: false + xy: 2011, 915 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tendrils-tiny + rotate: false + xy: 1281, 238 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tendrils-xlarge + rotate: false + xy: 731, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thermal-generator-large + rotate: false + xy: 947, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thermal-generator-medium + rotate: false + xy: 1221, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thermal-generator-small + rotate: false + xy: 2004, 889 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thermal-generator-tiny + rotate: false + xy: 1191, 134 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thermal-generator-xlarge + rotate: false + xy: 731, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thermal-pump-large + rotate: false + xy: 989, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thermal-pump-medium + rotate: false + xy: 1255, 564 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thermal-pump-small + rotate: false + xy: 2004, 863 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thermal-pump-tiny + rotate: false + xy: 1209, 148 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thermal-pump-xlarge + rotate: false + xy: 781, 628 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-reactor-large + rotate: false + xy: 1031, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-reactor-medium + rotate: false + xy: 879, 530 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thorium-reactor-small + rotate: false + xy: 2004, 837 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thorium-reactor-tiny + rotate: false + xy: 1227, 166 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thorium-reactor-xlarge + rotate: false + xy: 831, 628 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-wall-large + rotate: false + xy: 1073, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-large + rotate: false + xy: 1115, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-medium + rotate: false + xy: 879, 496 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thorium-wall-large-small + rotate: false + xy: 855, 6 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thorium-wall-large-tiny + rotate: false + xy: 1245, 184 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thorium-wall-large-xlarge + rotate: false + xy: 781, 578 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-wall-medium + rotate: false + xy: 913, 530 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thorium-wall-small + rotate: false + xy: 881, 6 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thorium-wall-tiny + rotate: false + xy: 1263, 202 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thorium-wall-xlarge + rotate: false + xy: 831, 578 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thruster-large + rotate: false + xy: 1157, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thruster-medium + rotate: false + xy: 879, 462 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thruster-small + rotate: false + xy: 907, 6 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thruster-tiny + rotate: false + xy: 1281, 220 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thruster-xlarge + rotate: false + xy: 351, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-conveyor-large + rotate: false + xy: 1199, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-conveyor-medium + rotate: false + xy: 947, 530 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-conveyor-small + rotate: false + xy: 1301, 839 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-conveyor-tiny + rotate: false + xy: 1191, 116 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-conveyor-xlarge + rotate: false + xy: 351, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-wall-large + rotate: false + xy: 1241, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-large + rotate: false + xy: 1283, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-medium + rotate: false + xy: 913, 496 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-wall-large-small + rotate: false + xy: 1327, 839 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-wall-large-tiny + rotate: false + xy: 1209, 130 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-wall-large-xlarge + rotate: false + xy: 401, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-wall-medium + rotate: false + xy: 879, 428 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-wall-small + rotate: false + xy: 1301, 813 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-wall-tiny + rotate: false + xy: 1227, 148 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-wall-xlarge rotate: false xy: 351, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-unloader-large +block-turbine-generator-large rotate: false - xy: 947, 452 + xy: 1325, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-unloader-medium +block-turbine-generator-medium rotate: false - xy: 1505, 839 + xy: 981, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-unloader-small +block-turbine-generator-small rotate: false - xy: 2009, 829 + xy: 1353, 839 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-unloader-tiny +block-turbine-generator-tiny rotate: false - xy: 1123, 390 + xy: 1245, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-unloader-xlarge +block-turbine-generator-xlarge rotate: false xy: 401, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-vault-large +block-underflow-gate-large rotate: false - xy: 947, 410 + xy: 1367, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-vault-medium +block-underflow-gate-medium rotate: false - xy: 1539, 873 + xy: 947, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-underflow-gate-small rotate: false - xy: 955, 526 + xy: 1301, 787 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-underflow-gate-tiny rotate: false - xy: 1141, 408 + xy: 1263, 184 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-underflow-gate-xlarge rotate: false xy: 451, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-unloader-large rotate: false - xy: 947, 368 + xy: 1409, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-extractor-medium +block-unloader-medium rotate: false - xy: 1505, 805 + xy: 913, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-unloader-small rotate: false - xy: 955, 500 + xy: 1327, 813 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-unloader-tiny rotate: false - xy: 1159, 426 + xy: 1281, 202 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-unloader-xlarge rotate: false xy: 351, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-vault-large rotate: false - xy: 939, 326 + xy: 1451, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-medium +block-vault-medium rotate: false - xy: 1539, 839 + xy: 1015, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-small +block-vault-small rotate: false - xy: 981, 526 + xy: 1379, 839 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-tiny +block-vault-tiny rotate: false - xy: 1177, 444 + xy: 1191, 98 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-xlarge +block-vault-xlarge rotate: false xy: 401, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wave-large +block-water-extractor-large rotate: false - xy: 939, 284 + xy: 1493, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-water-extractor-medium rotate: false - xy: 1573, 873 + xy: 981, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-water-extractor-small rotate: false - xy: 1007, 526 + xy: 1301, 761 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-water-extractor-tiny rotate: false - xy: 1195, 462 + xy: 1209, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-water-extractor-xlarge rotate: false xy: 451, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-water-large rotate: false - xy: 939, 242 + xy: 1535, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-dead-medium +block-water-medium rotate: false - xy: 1505, 771 + xy: 947, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-dead-small +block-water-small rotate: false - xy: 981, 500 + xy: 1327, 787 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-dead-tiny +block-water-tiny rotate: false - xy: 1213, 480 + xy: 1227, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-dead-xlarge +block-water-xlarge rotate: false xy: 501, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-large +block-wave-large rotate: false - xy: 939, 200 + xy: 1577, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-medium +block-wave-medium rotate: false - xy: 1539, 805 + xy: 913, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-small +block-wave-small rotate: false - xy: 1033, 526 + xy: 1353, 813 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-tiny +block-wave-tiny rotate: false - xy: 1231, 498 + xy: 1245, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-xlarge +block-wave-xlarge rotate: false xy: 351, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-white-tree-dead-large + rotate: false + xy: 1619, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-dead-medium + rotate: false + xy: 1049, 530 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-dead-small + rotate: false + xy: 1405, 839 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-dead-tiny + rotate: false + xy: 1263, 166 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-dead-xlarge + rotate: false + xy: 401, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-large + rotate: false + xy: 1661, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-medium + rotate: false + xy: 1015, 496 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-small + rotate: false + xy: 1301, 735 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-tiny + rotate: false + xy: 1281, 184 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-xlarge + rotate: false + xy: 451, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 button rotate: false - xy: 1201, 946 + xy: 1035, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13629,7 +13727,7 @@ button index: -1 button-disabled rotate: false - xy: 939, 171 + xy: 351, 1 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13637,7 +13735,7 @@ button-disabled index: -1 button-down rotate: false - xy: 939, 142 + xy: 389, 1 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13645,7 +13743,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 939, 113 + xy: 427, 1 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13653,7 +13751,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 939, 84 + xy: 1703, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13661,7 +13759,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 939, 55 + xy: 1741, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13669,7 +13767,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 939, 26 + xy: 1779, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13677,7 +13775,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 897, 3 + xy: 1817, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13685,7 +13783,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 859, 946 + xy: 1855, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13693,7 +13791,7 @@ button-over index: -1 button-red rotate: false - xy: 897, 946 + xy: 1893, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13701,7 +13799,7 @@ button-red index: -1 button-right rotate: false - xy: 1011, 946 + xy: 845, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13709,7 +13807,7 @@ button-right index: -1 button-right-down rotate: false - xy: 935, 946 + xy: 1931, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13717,7 +13815,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 973, 946 + xy: 1969, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13725,7 +13823,7 @@ button-right-over index: -1 button-select rotate: false - xy: 1007, 500 + xy: 1327, 761 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -13733,7 +13831,7 @@ button-select index: -1 button-square rotate: false - xy: 1125, 946 + xy: 959, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13741,7 +13839,7 @@ button-square index: -1 button-square-down rotate: false - xy: 1049, 946 + xy: 883, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13749,7 +13847,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 1087, 946 + xy: 921, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13757,7 +13855,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 1163, 946 + xy: 997, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13765,42 +13863,42 @@ button-trans index: -1 check-disabled rotate: false - xy: 1573, 839 + xy: 981, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1607, 873 + xy: 947, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1505, 737 + xy: 1083, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1539, 771 + xy: 1049, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1573, 805 + xy: 1015, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1607, 839 + xy: 981, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -13821,7 +13919,7 @@ crater index: -1 cursor rotate: false - xy: 955, 494 + xy: 1165, 422 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -13835,7 +13933,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 1239, 946 + xy: 1073, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -13850,7 +13948,7 @@ info-banner index: -1 inventory rotate: false - xy: 989, 458 + xy: 1353, 771 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -13858,140 +13956,140 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 1641, 873 + xy: 1117, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 1539, 737 + xy: 1083, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 1573, 771 + xy: 1049, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 1607, 805 + xy: 1015, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 1641, 839 + xy: 1151, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 1675, 873 + xy: 1117, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-icon rotate: false - xy: 1573, 737 + xy: 1083, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-icon rotate: false - xy: 1607, 771 + xy: 1049, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 1641, 805 + xy: 1185, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 1675, 839 + xy: 1151, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 1709, 873 + xy: 1117, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 1607, 737 + xy: 1083, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 1641, 771 + xy: 1219, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 1675, 805 + xy: 1185, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 1709, 839 + xy: 1151, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 1743, 873 + xy: 1117, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 1641, 737 + xy: 1253, 530 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 1675, 771 + xy: 1219, 496 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 1709, 805 + xy: 1185, 462 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 1743, 839 + xy: 1151, 428 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -14012,7 +14110,7 @@ nomap index: -1 pane rotate: false - xy: 1315, 946 + xy: 1149, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14020,7 +14118,7 @@ pane index: -1 pane-2 rotate: false - xy: 1277, 946 + xy: 1111, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14028,7 +14126,7 @@ pane-2 index: -1 scroll rotate: false - xy: 989, 379 + xy: 1405, 802 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -14036,7 +14134,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 1, 2 + xy: 845, 878 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -14044,56 +14142,56 @@ scroll-horizontal index: -1 scroll-knob-horizontal-black rotate: false - xy: 351, 4 + xy: 1, 2 size: 40, 24 orig: 40, 24 offset: 0, 0 index: -1 scroll-knob-vertical-black rotate: false - xy: 989, 416 + xy: 1379, 797 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 2035, 865 + xy: 1191, 56 size: 12, 40 orig: 12, 40 offset: 0, 0 index: -1 selection rotate: false - xy: 1505, 708 + xy: 821, 975 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 1925, 859 + xy: 131, 528 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 1777, 867 + xy: 1253, 490 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 1808, 867 + xy: 1185, 422 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 1839, 867 + xy: 1219, 456 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -14107,7 +14205,7 @@ slider-vertical index: -1 underline rotate: false - xy: 1467, 946 + xy: 1301, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14115,7 +14213,7 @@ underline index: -1 underline-2 rotate: false - xy: 1353, 946 + xy: 1187, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14123,7 +14221,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 1391, 946 + xy: 1225, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14131,7 +14229,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 1429, 946 + xy: 1263, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14139,14 +14237,14 @@ underline-red index: -1 whiteui rotate: false - xy: 259, 664 + xy: 821, 928 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 1928, 844 + xy: 1289, 637 size: 27, 61 split: 4, 4, 2, 2 orig: 27, 61 @@ -14557,7 +14655,7 @@ armored-conveyor-icon-editor index: -1 battery-icon-editor rotate: false - xy: 1209, 117 + xy: 1895, 315 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -14578,42 +14676,56 @@ blast-drill-icon-editor index: -1 blast-mixer-icon-editor rotate: false - xy: 1043, 219 + xy: 1297, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border-editor rotate: false - xy: 1555, 273 + xy: 1929, 315 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +block-forge-icon-editor + rotate: false + xy: 1133, 415 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-launcher-icon-editor + rotate: false + xy: 1231, 415 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 bridge-conduit-icon-editor rotate: false - xy: 1597, 315 + xy: 1963, 315 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-icon-editor rotate: false - xy: 1243, 117 + xy: 163, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char-icon-editor rotate: false - xy: 1631, 315 + xy: 197, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char1 rotate: false - xy: 1631, 315 + xy: 197, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -14627,63 +14739,63 @@ clear-editor index: -1 cliff-icon-editor rotate: false - xy: 1277, 117 + xy: 231, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs-icon-editor rotate: false - xy: 1665, 315 + xy: 265, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal-centrifuge-icon-editor rotate: false - xy: 1043, 153 + xy: 1363, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 combustion-generator-icon-editor rotate: false - xy: 1311, 117 + xy: 299, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-icon-editor rotate: false - xy: 1699, 315 + xy: 333, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 container-icon-editor rotate: false - xy: 1043, 87 + xy: 1429, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conveyor-icon-editor rotate: false - xy: 1345, 117 + xy: 367, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-icon-editor rotate: false - xy: 1733, 315 + xy: 401, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large-icon-editor rotate: false - xy: 1101, 349 + xy: 1495, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -14704,238 +14816,238 @@ core-nucleus-icon-editor index: -1 core-shard-icon-editor rotate: false - xy: 1133, 415 + xy: 1329, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 craters-icon-editor rotate: false - xy: 1379, 117 + xy: 435, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters1 rotate: false - xy: 1379, 117 + xy: 435, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cryofluidmixer-icon-editor rotate: false - xy: 1167, 349 + xy: 1561, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-icon-editor rotate: false - xy: 1233, 349 + xy: 1627, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cyclone-icon-editor rotate: false - xy: 1231, 415 + xy: 1427, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-metal-icon-editor rotate: false - xy: 1767, 315 + xy: 469, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-icon-editor rotate: false - xy: 1801, 315 + xy: 503, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-1 rotate: false - xy: 1801, 315 + xy: 503, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-icon-editor rotate: false - xy: 1835, 315 + xy: 553, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-2 rotate: false - xy: 1835, 315 + xy: 553, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-icon-editor rotate: false - xy: 1869, 315 + xy: 587, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-3 rotate: false - xy: 1869, 315 + xy: 587, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-icon-editor rotate: false - xy: 1903, 315 + xy: 945, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-4 rotate: false - xy: 1903, 315 + xy: 945, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-icon-editor rotate: false - xy: 1937, 315 + xy: 979, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-5 rotate: false - xy: 1937, 315 + xy: 979, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-icon-editor rotate: false - xy: 1971, 315 + xy: 1109, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-6 rotate: false - xy: 1971, 315 + xy: 1109, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-icon-editor rotate: false - xy: 163, 27 + xy: 1143, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand1 rotate: false - xy: 163, 27 + xy: 1143, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-icon-editor rotate: false - xy: 197, 27 + xy: 1177, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-icon-editor rotate: false - xy: 231, 27 + xy: 1211, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-icon-editor rotate: false - xy: 265, 27 + xy: 1245, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-deepwater rotate: false - xy: 265, 27 + xy: 1245, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator-icon-editor rotate: false - xy: 1329, 415 + xy: 1525, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode-icon-editor rotate: false - xy: 299, 27 + xy: 1307, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor-icon-editor rotate: false - xy: 1299, 349 + xy: 1693, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-icon-editor rotate: false - xy: 333, 27 + xy: 1341, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large-icon-editor rotate: false - xy: 1365, 349 + xy: 1759, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dunerocks-icon-editor rotate: false - xy: 367, 27 + xy: 1375, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-editor rotate: false - xy: 401, 27 + xy: 1409, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char2 rotate: false - xy: 435, 27 + xy: 1443, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char3 rotate: false - xy: 469, 27 + xy: 1477, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -14949,826 +15061,826 @@ editor-clear index: -1 editor-craters2 rotate: false - xy: 503, 27 + xy: 1511, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters3 rotate: false - xy: 1505, 215 + xy: 1997, 315 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water1 rotate: false - xy: 1143, 67 + xy: 1621, 183 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water2 rotate: false - xy: 1143, 33 + xy: 1687, 249 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water3 rotate: false - xy: 1177, 67 + xy: 1721, 265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water1 rotate: false - xy: 1177, 33 + xy: 1755, 265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water2 rotate: false - xy: 2005, 315 + xy: 1789, 265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water3 rotate: false - xy: 1489, 181 + xy: 1823, 265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand2 rotate: false - xy: 1413, 117 + xy: 1545, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand3 rotate: false - xy: 1555, 239 + xy: 1579, 133 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass1 rotate: false - xy: 1447, 133 + xy: 1857, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-editor rotate: false - xy: 1447, 133 + xy: 1857, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass2 rotate: false - xy: 1211, 83 + xy: 537, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass3 rotate: false - xy: 1211, 49 + xy: 571, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone1 rotate: false - xy: 1245, 83 + xy: 1579, 99 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone-icon-editor rotate: false - xy: 1245, 83 + xy: 1579, 99 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone2 rotate: false - xy: 1245, 49 + xy: 1621, 149 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone3 rotate: false - xy: 1279, 83 + xy: 1613, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock1 rotate: false - xy: 1279, 49 + xy: 1655, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-editor rotate: false - xy: 1279, 49 + xy: 1655, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock2 rotate: false - xy: 1313, 83 + xy: 1655, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock3 rotate: false - xy: 1313, 49 + xy: 1721, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow1 rotate: false - xy: 1381, 49 + xy: 1857, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-editor rotate: false - xy: 1381, 49 + xy: 1857, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow2 rotate: false - xy: 1415, 83 + xy: 605, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow3 rotate: false - xy: 1415, 49 + xy: 639, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice1 rotate: false - xy: 1347, 83 + xy: 1755, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-editor rotate: false - xy: 1347, 83 + xy: 1755, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice2 rotate: false - xy: 1347, 49 + xy: 1789, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice3 rotate: false - xy: 1381, 83 + xy: 1823, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock1 rotate: false - xy: 1523, 181 + xy: 673, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-icon-editor rotate: false - xy: 1523, 181 + xy: 673, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock2 rotate: false - xy: 1211, 15 + xy: 707, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock3 rotate: false - xy: 1245, 15 + xy: 741, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock1 rotate: false - xy: 1279, 15 + xy: 775, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-editor rotate: false - xy: 1279, 15 + xy: 775, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock2 rotate: false - xy: 1313, 15 + xy: 809, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock3 rotate: false - xy: 1347, 15 + xy: 843, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor rotate: false - xy: 1381, 15 + xy: 877, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-editor rotate: false - xy: 1381, 15 + xy: 877, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-2 rotate: false - xy: 1415, 15 + xy: 911, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-editor rotate: false - xy: 1415, 15 + xy: 911, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-3 rotate: false - xy: 1449, 99 + xy: 945, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-editor rotate: false - xy: 1449, 99 + xy: 945, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-5 rotate: false - xy: 1449, 65 + xy: 979, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-editor rotate: false - xy: 1449, 65 + xy: 979, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged1 rotate: false - xy: 1449, 31 + xy: 1613, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-editor rotate: false - xy: 1449, 31 + xy: 1613, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged2 rotate: false - xy: 1489, 147 + xy: 1655, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged3 rotate: false - xy: 1523, 147 + xy: 1647, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss1 rotate: false - xy: 1483, 113 + xy: 1647, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-editor rotate: false - xy: 1483, 113 + xy: 1647, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss2 rotate: false - xy: 1483, 79 + xy: 1895, 281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss3 rotate: false - xy: 1517, 113 + xy: 1929, 281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal1 rotate: false - xy: 1483, 45 + xy: 1963, 281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal2 rotate: false - xy: 1517, 79 + xy: 1997, 281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal3 rotate: false - xy: 1517, 45 + xy: 1891, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper1 rotate: false - xy: 1483, 11 + xy: 1925, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper2 rotate: false - xy: 1517, 11 + xy: 1959, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper3 rotate: false - xy: 1589, 273 + xy: 1993, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead1 rotate: false - xy: 1589, 239 + xy: 1857, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead2 rotate: false - xy: 1623, 281 + xy: 1891, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead3 rotate: false - xy: 1623, 247 + xy: 1925, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap1 rotate: false - xy: 1657, 281 + xy: 1959, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap2 rotate: false - xy: 1657, 247 + xy: 1993, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap3 rotate: false - xy: 1691, 281 + xy: 1681, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium1 rotate: false - xy: 1691, 247 + xy: 1681, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium2 rotate: false - xy: 1725, 281 + xy: 1891, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium3 rotate: false - xy: 1725, 247 + xy: 1925, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium1 rotate: false - xy: 1759, 281 + xy: 1959, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium2 rotate: false - xy: 1759, 247 + xy: 1993, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium3 rotate: false - xy: 1793, 281 + xy: 1013, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles1 rotate: false - xy: 1793, 247 + xy: 1047, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles2 rotate: false - xy: 1827, 281 + xy: 1013, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles3 rotate: false - xy: 1827, 247 + xy: 1047, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-salt rotate: false - xy: 1861, 281 + xy: 1081, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-editor rotate: false - xy: 1861, 281 + xy: 1081, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water1 rotate: false - xy: 1929, 281 + xy: 1217, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water2 rotate: false - xy: 1929, 247 + xy: 1081, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water3 rotate: false - xy: 1963, 281 + xy: 1115, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand1 rotate: false - xy: 1861, 247 + xy: 1115, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-editor rotate: false - xy: 1861, 247 + xy: 1115, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand2 rotate: false - xy: 1895, 281 + xy: 1149, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand3 rotate: false - xy: 1895, 247 + xy: 1183, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale1 rotate: false - xy: 1963, 247 + xy: 1149, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-editor rotate: false - xy: 1963, 247 + xy: 1149, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale2 rotate: false - xy: 1997, 281 + xy: 1183, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale3 rotate: false - xy: 1997, 247 + xy: 1217, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-slag rotate: false - xy: 1557, 205 + xy: 1251, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-icon-editor rotate: false - xy: 1557, 205 + xy: 1251, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow1 rotate: false - xy: 1557, 171 + xy: 1251, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow2 rotate: false - xy: 1591, 205 + xy: 1689, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow3 rotate: false - xy: 1591, 171 + xy: 1723, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spawn rotate: false - xy: 1625, 213 + xy: 1689, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss1 rotate: false - xy: 1625, 179 + xy: 1757, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-editor rotate: false - xy: 1625, 179 + xy: 1757, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss2 rotate: false - xy: 1659, 213 + xy: 1723, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss3 rotate: false - xy: 1659, 179 + xy: 1791, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone1 rotate: false - xy: 1693, 213 + xy: 1757, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-editor rotate: false - xy: 1693, 213 + xy: 1757, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone2 rotate: false - xy: 1693, 179 + xy: 1791, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone3 rotate: false - xy: 1727, 213 + xy: 1715, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tainted-water rotate: false - xy: 1727, 179 + xy: 1715, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-editor rotate: false - xy: 1727, 179 + xy: 1715, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tar rotate: false - xy: 1761, 213 + xy: 1749, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-editor rotate: false - xy: 1761, 213 + xy: 1749, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils1 rotate: false - xy: 1761, 179 + xy: 1749, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils2 rotate: false - xy: 1795, 213 + xy: 1783, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils3 rotate: false - xy: 1795, 179 + xy: 1783, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-water rotate: false - xy: 1829, 213 + xy: 1715, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-editor rotate: false - xy: 1829, 213 + xy: 1715, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 force-projector-icon-editor rotate: false - xy: 1427, 415 + xy: 1623, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 fuse-icon-editor rotate: false - xy: 1525, 415 + xy: 1721, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press-icon-editor rotate: false - xy: 1431, 349 + xy: 1825, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ground-factory-icon-editor rotate: false - xy: 1623, 415 + xy: 1819, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hail-icon-editor rotate: false - xy: 1829, 179 + xy: 1749, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icerocks-icon-editor rotate: false - xy: 1863, 213 + xy: 1783, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-icon-editor rotate: false - xy: 1863, 179 + xy: 1817, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -15782,63 +15894,63 @@ impact-reactor-icon-editor index: -1 incinerator-icon-editor rotate: false - xy: 1897, 213 + xy: 1817, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter-icon-editor rotate: false - xy: 1897, 179 + xy: 1817, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-editor rotate: false - xy: 1931, 213 + xy: 1825, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-editor rotate: false - xy: 1931, 179 + xy: 1285, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction-icon-editor rotate: false - xy: 1965, 213 + xy: 1285, 13 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln-icon-editor rotate: false - xy: 1497, 349 + xy: 1891, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 lancer-icon-editor rotate: false - xy: 1563, 349 + xy: 1043, 219 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill-icon-editor rotate: false - xy: 1721, 415 + xy: 1917, 415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-icon-editor rotate: false - xy: 1819, 415 + xy: 553, 93 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -15852,63 +15964,63 @@ launch-pad-large-icon-editor index: -1 liquid-junction-icon-editor rotate: false - xy: 1965, 179 + xy: 1851, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-editor rotate: false - xy: 1999, 213 + xy: 1851, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-editor rotate: false - xy: 1999, 179 + xy: 1851, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-icon-editor rotate: false - xy: 1917, 415 + xy: 651, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-void-icon-editor rotate: false - xy: 1557, 137 + xy: 1885, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mass-conveyor-icon-editor rotate: false - xy: 553, 93 + xy: 749, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mass-driver-icon-editor rotate: false - xy: 651, 155 + xy: 651, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill-icon-editor rotate: false - xy: 1629, 349 + xy: 1043, 153 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-pump-icon-editor rotate: false - xy: 1591, 137 + xy: 1885, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -15922,294 +16034,294 @@ meltdown-icon-editor index: -1 melter-icon-editor rotate: false - xy: 1625, 145 + xy: 1919, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mend-projector-icon-editor rotate: false - xy: 1695, 349 + xy: 1043, 87 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender-icon-editor rotate: false - xy: 1659, 145 + xy: 1885, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 1693, 145 + xy: 1919, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press-icon-editor rotate: false - xy: 749, 155 + xy: 749, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-icon-editor rotate: false - xy: 651, 57 + xy: 847, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector-icon-editor rotate: false - xy: 1761, 349 + xy: 1957, 349 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overflow-gate-icon-editor rotate: false - xy: 1727, 145 + xy: 1953, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles-icon-editor rotate: false - xy: 1761, 145 + xy: 1919, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 1795, 145 + xy: 1953, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 1829, 145 + xy: 1987, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 1863, 145 + xy: 1953, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large-icon-editor rotate: false - xy: 1827, 349 + xy: 1109, 251 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-icon-editor rotate: false - xy: 1893, 349 + xy: 1109, 185 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pine-icon-editor rotate: false - xy: 1109, 101 + xy: 1571, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 plastanium-compressor-icon-editor rotate: false - xy: 1959, 349 + xy: 1175, 251 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-conveyor-icon-editor rotate: false - xy: 1897, 145 + xy: 1987, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 1931, 145 + xy: 1987, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large-icon-editor rotate: false - xy: 553, 27 + xy: 1109, 119 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plated-conduit-icon-editor rotate: false - xy: 1965, 145 + xy: 1851, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pneumatic-drill-icon-editor rotate: false - xy: 945, 23 + xy: 1175, 185 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-icon-editor rotate: false - xy: 1999, 145 + xy: 1885, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large-icon-editor rotate: false - xy: 1011, 21 + xy: 1175, 119 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source-icon-editor rotate: false - xy: 1551, 103 + xy: 1919, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 1551, 69 + xy: 1953, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 1585, 103 + xy: 1987, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 1551, 35 + xy: 1319, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer-icon-editor rotate: false - xy: 1077, 21 + xy: 1241, 251 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-icon-editor rotate: false - xy: 1551, 1 + xy: 1353, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple-icon-editor rotate: false - xy: 749, 57 + xy: 847, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rock-icon-editor rotate: false - xy: 1505, 299 + xy: 1637, 233 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rocks-icon-editor rotate: false - xy: 1585, 69 + xy: 1387, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-icon-editor rotate: false - xy: 1109, 283 + xy: 1241, 185 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 router-icon-editor rotate: false - xy: 1585, 35 + xy: 1421, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-icon-editor rotate: false - xy: 1109, 217 + xy: 1241, 119 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 saltrocks-icon-editor rotate: false - xy: 1585, 1 + xy: 1455, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salvo-icon-editor rotate: false - xy: 1175, 283 + xy: 1307, 283 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sand-boulder-icon-editor rotate: false - xy: 1625, 111 + xy: 1489, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 1659, 111 + xy: 1523, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-editor rotate: false - xy: 1693, 111 + xy: 1557, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-icon-editor rotate: false - xy: 1109, 151 + xy: 1307, 217 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-icon-editor rotate: false - xy: 1727, 111 + xy: 1591, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -16223,119 +16335,119 @@ scrap-wall-gigantic-icon-editor index: -1 scrap-wall-huge-icon-editor rotate: false - xy: 847, 155 + xy: 1003, 285 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-icon-editor rotate: false - xy: 1761, 111 + xy: 1625, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-large-icon-editor rotate: false - xy: 1175, 217 + xy: 1373, 283 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-icon-editor rotate: false - xy: 1241, 283 + xy: 1307, 151 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shale-boulder-icon-editor rotate: false - xy: 1795, 111 + xy: 1659, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-editor rotate: false - xy: 1829, 111 + xy: 1693, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 1863, 111 + xy: 1727, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 1897, 111 + xy: 1761, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 silicon-smelter-icon-editor rotate: false - xy: 1175, 151 + xy: 1373, 217 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 snow-icon-editor rotate: false - xy: 1931, 111 + xy: 1795, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-pine-icon-editor rotate: false - xy: 1439, 167 + xy: 1703, 299 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock-icon-editor rotate: false - xy: 1159, 101 + xy: 1753, 299 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrocks-icon-editor rotate: false - xy: 1965, 111 + xy: 1829, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 1999, 111 + xy: 1863, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large-icon-editor rotate: false - xy: 847, 57 + xy: 945, 187 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sorter-icon-editor rotate: false - xy: 1619, 77 + xy: 1897, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 1619, 43 + xy: 1931, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -16349,98 +16461,98 @@ spectre-icon-editor index: -1 spore-cluster-icon-editor rotate: false - xy: 1555, 307 + xy: 1853, 307 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-pine-icon-editor rotate: false - xy: 1505, 249 + xy: 1803, 299 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-press-icon-editor rotate: false - xy: 1241, 217 + xy: 1439, 283 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sporerocks-icon-editor rotate: false - xy: 1653, 77 + xy: 1965, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-tower-icon-editor rotate: false - xy: 1307, 283 + xy: 1373, 151 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-icon-editor rotate: false - xy: 1619, 9 + xy: 1999, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large-icon-editor rotate: false - xy: 1241, 151 + xy: 1439, 217 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 swarmer-icon-editor rotate: false - xy: 1307, 217 + xy: 1505, 283 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 tendrils-icon-editor rotate: false - xy: 1653, 43 + xy: 1319, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-generator-icon-editor rotate: false - xy: 1373, 283 + xy: 1439, 151 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump-icon-editor rotate: false - xy: 1003, 285 + xy: 945, 89 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-icon-editor rotate: false - xy: 945, 187 + xy: 1101, 317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-wall-icon-editor rotate: false - xy: 1687, 77 + xy: 1353, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large-icon-editor rotate: false - xy: 1307, 151 + xy: 1505, 217 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -16454,63 +16566,63 @@ thruster-icon-editor index: -1 titanium-conveyor-icon-editor rotate: false - xy: 1653, 9 + xy: 1387, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 1687, 43 + xy: 1421, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large-icon-editor rotate: false - xy: 1373, 217 + xy: 1571, 283 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-icon-editor rotate: false - xy: 1439, 283 + xy: 1505, 151 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 underflow-gate-icon-editor rotate: false - xy: 1721, 77 + xy: 1455, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 1687, 9 + xy: 1489, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault-icon-editor rotate: false - xy: 945, 89 + xy: 1199, 317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 water-extractor-icon-editor rotate: false - xy: 1373, 151 + xy: 1571, 217 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-icon-editor rotate: false - xy: 1439, 217 + xy: 1637, 283 size: 64, 64 orig: 64, 64 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 0ebe662fc7..48a4c2e255 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index d5d3c40bdd..97e679515f 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites3.png b/core/assets/sprites/sprites3.png index ddc58efa59..a17acedf8c 100644 Binary files a/core/assets/sprites/sprites3.png and b/core/assets/sprites/sprites3.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 4be47b43ec..b85f2c8d80 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/assets/sprites/sprites6.png b/core/assets/sprites/sprites6.png index 665c0ebe18..8a2a28b688 100644 Binary files a/core/assets/sprites/sprites6.png and b/core/assets/sprites/sprites6.png differ diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java index 17a71d6b06..b6fa3f290f 100644 --- a/core/src/mindustry/ClientLauncher.java +++ b/core/src/mindustry/ClientLauncher.java @@ -45,7 +45,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform return (Float.isNaN(result) || Float.isInfinite(result)) ? 1f : Mathf.clamp(result, 0.0001f, 60f / 10f); }); - batch = new SpriteBatch(); + batch = new SortedSpriteBatch(); assets = new AssetManager(); assets.setLoader(Texture.class, "." + mapExtension, new MapPreviewLoader()); diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index d70b71e33c..757db7e8a9 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -988,7 +988,7 @@ public class Blocks implements ContentList{ consumes.power(1.75f); }}; - massConveyor = new MassConveyor("mass-conveyor"){{ + massConveyor = new PayloadConveyor("mass-conveyor"){{ requirements(Category.distribution, ItemStack.with(Items.copper, 1)); }}; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 45b856db4a..8af49d390a 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -193,7 +193,7 @@ public class Control implements ApplicationListener, Loadable{ public void loadAsync(){ Draw.scl = 1f / Core.atlas.find("scale_marker").getWidth(); - Core.input.setCatch(KeyCode.BACK, true); + Core.input.setCatch(KeyCode.back, true); data.load(); @@ -400,9 +400,9 @@ public class Control implements ApplicationListener, Loadable{ }).pad(10f).expand().center(); dialog.buttons.defaults().size(200f, 60f); - dialog.buttons.addButton("$uiscale.cancel", exit); + dialog.buttons.button("$uiscale.cancel", exit); - dialog.buttons.addButton("$ok", () -> { + dialog.buttons.button("$ok", () -> { Core.settings.put("uiscalechanged", false); settings.save(); dialog.hide(); @@ -494,7 +494,7 @@ public class Control implements ApplicationListener, Loadable{ Time.update(); } - if(!scene.hasDialog() && !scene.root.getChildren().isEmpty() && !(scene.root.getChildren().peek() instanceof Dialog) && Core.input.keyTap(KeyCode.BACK)){ + if(!scene.hasDialog() && !scene.root.getChildren().isEmpty() && !(scene.root.getChildren().peek() instanceof Dialog) && Core.input.keyTap(KeyCode.back)){ platform.hide(); } } diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index 8d6a4e132e..e903d0af6c 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -25,7 +25,7 @@ public class Renderer implements ApplicationListener{ public final LightRenderer lights = new LightRenderer(); public final Pixelator pixelator = new Pixelator(); - public FrameBuffer effectBuffer = new FrameBuffer(2, 2); + public FrameBuffer effectBuffer = new FrameBuffer(); private Bloom bloom; private FxProcessor fx = new FxProcessor(); private Color clearColor = new Color(0f, 0f, 0f, 1f); @@ -181,91 +181,56 @@ public class Renderer implements ApplicationListener{ graphics.clear(clearColor); - if(!graphics.isHidden() && (Core.settings.getBool("animatedwater") || Core.settings.getBool("animatedshields")) && (effectBuffer.getWidth() != graphics.getWidth() || effectBuffer.getHeight() != graphics.getHeight())){ + //TODO 'animated water' is a bad name for this setting + if(Core.settings.getBool("animatedwater") || Core.settings.getBool("animatedshields")){ effectBuffer.resize(graphics.getWidth(), graphics.getHeight()); } Draw.proj(camera); - beginFx(); - - drawBackground(); - blocks.floor.checkChanges(); - blocks.floor.drawFloor(); - - Groups.drawFloor(); - Groups.drawFloorOver(); - blocks.processBlocks(); - blocks.drawShadows(); - Draw.color(); - blocks.floor.beginDraw(); - blocks.floor.drawLayer(CacheLayer.walls); - blocks.floor.endDraw(); + Draw.sort(true); - blocks.drawBlocks(Layer.block); - if(state.rules.drawFog){ - blocks.drawFog(); - } + //TODO fx - blocks.drawDestroyed(); + Draw.draw(Layer.background, this::drawBackground); + Draw.draw(Layer.floor, blocks.floor::drawFloor); + Draw.draw(Layer.block - 1, blocks::drawShadows); + Draw.draw(Layer.block, () -> { + blocks.floor.beginDraw(); + blocks.floor.drawLayer(CacheLayer.walls); + blocks.floor.endDraw(); + }); - Draw.shader(Shaders.blockbuild, true); - blocks.drawBlocks(Layer.placement); - Draw.shader(); - - blocks.drawBlocks(Layer.overlay); - - Groups.drawGroundShadows(); - Groups.drawGroundUnder(); - Groups.drawGround(); - - blocks.drawBlocks(Layer.turret); - - blocks.drawBlocks(Layer.power); - blocks.drawBlocks(Layer.lights); - - overlays.drawBottom(); - - Groups.drawFlyingShadows(); - - Groups.drawFlying(); - - Draw.flush(); - if(bloom != null){ - bloom.capture(); - } - - Groups.drawBullets(); - Groups.drawEffects(); - - Draw.flush(); - if(bloom != null){ - bloom.render(); - } - - Groups.drawOverlays(); - - overlays.drawTop(); - - Groups.drawWeather(); - - endFx(); - - if(!pixelator.enabled()){ - Groups.drawNames(); - } + Draw.drawRange(Layer.blockBuilding, () -> Draw.shader(Shaders.blockbuild, false), Draw::shader); if(state.rules.lighting){ - lights.draw(); + Draw.draw(Layer.light, lights::draw); } - drawLanding(); + if(state.rules.drawDarkness){ + Draw.draw(Layer.darkness, blocks::drawDarkness); + } - Draw.color(); + if(bloom != null){ + Draw.draw(Layer.bullet - 0.001f, bloom::capture); + Draw.draw(Layer.effect + 0.001f, bloom::render); + } + + Draw.draw(Layer.plans, overlays::drawBottom); + Draw.draw(Layer.overlayUI, overlays::drawTop); + Draw.draw(Layer.space, this::drawLanding); + + blocks.drawBlocks(); + + Groups.draw.draw(Drawc::draw); + + Draw.reset(); Draw.flush(); + Draw.sort(false); + } private void drawBackground(){ @@ -322,8 +287,6 @@ public class Renderer implements ApplicationListener{ } public void takeMapScreenshot(){ - Groups.drawGroundShadows(); - int w = world.width() * tilesize, h = world.height() * tilesize; int memory = w * h * 4 / 1024 / 1024; diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index f7f301cfae..9d565a3ce1 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -129,7 +129,7 @@ public class UI implements ApplicationListener, Loadable{ Core.scene.act(); Core.scene.draw(); - if(Core.input.keyTap(KeyCode.MOUSE_LEFT) && Core.scene.getKeyboardFocus() instanceof TextField){ + if(Core.input.keyTap(KeyCode.mouseLeft) && Core.scene.getKeyboardFocus() instanceof TextField){ Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); if(!(e instanceof TextField)){ Core.scene.setKeyboardFocus(null); @@ -249,23 +249,23 @@ public class UI implements ApplicationListener, Loadable{ new Dialog(titleText){{ cont.margin(30).add(dtext).padRight(6f); TextFieldFilter filter = inumeric ? TextFieldFilter.digitsOnly : (f, c) -> true; - TextField field = cont.addField(def, t -> {}).size(330f, 50f).get(); + TextField field = cont.field(def, t -> {}).size(330f, 50f).get(); field.setFilter((f, c) -> field.getText().length() < textLength && filter.acceptChar(f, c)); buttons.defaults().size(120, 54).pad(4); - buttons.addButton("$ok", () -> { + buttons.button("$ok", () -> { confirmed.get(field.getText()); hide(); }).disabled(b -> field.getText().isEmpty()); - buttons.addButton("$cancel", this::hide); - keyDown(KeyCode.ENTER, () -> { + buttons.button("$cancel", this::hide); + keyDown(KeyCode.enter, () -> { String text = field.getText(); if(!text.isEmpty()){ confirmed.get(text); hide(); } }); - keyDown(KeyCode.ESCAPE, this::hide); - keyDown(KeyCode.BACK, this::hide); + keyDown(KeyCode.escape, this::hide); + keyDown(KeyCode.back, this::hide); show(); Core.scene.setKeyboardFocus(field); field.setCursorPosition(def.length()); @@ -328,6 +328,7 @@ public class UI implements ApplicationListener, Loadable{ Vec2 v = Core.camera.project(worldx, worldy); t.setPosition(v.x, v.y, Align.center); }); + table.act(0f); //make sure it's at the back Core.scene.root.addChildAt(0, table); } @@ -336,7 +337,7 @@ public class UI implements ApplicationListener, Loadable{ new Dialog(""){{ getCell(cont).growX(); cont.margin(15).add(info).width(400f).wrap().get().setAlignment(Align.center, Align.center); - buttons.addButton("$ok", this::hide).size(110, 50).pad(4); + buttons.button("$ok", this::hide).size(110, 50).pad(4); }}.show(); } @@ -346,11 +347,11 @@ public class UI implements ApplicationListener, Loadable{ cont.margin(15f); cont.add("$error.title"); cont.row(); - cont.addImage().width(300f).pad(2).height(4f).color(Color.scarlet); + cont.image().width(300f).pad(2).height(4f).color(Color.scarlet); cont.row(); cont.add(text).pad(2f).growX().wrap().get().setAlignment(Align.center); cont.row(); - cont.addButton("$ok", this::hide).size(120, 50).pad(4); + cont.button("$ok", this::hide).size(120, 50).pad(4); }}.show(); } @@ -367,15 +368,15 @@ public class UI implements ApplicationListener, Loadable{ cont.margin(15); cont.add("$error.title").colspan(2); cont.row(); - cont.addImage().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); + cont.image().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); cont.row(); cont.add((text.startsWith("$") ? Core.bundle.get(text.substring(1)) : text) + (message == null ? "" : "\n[lightgray](" + message + ")")).colspan(2).wrap().growX().center().get().setAlignment(Align.center); cont.row(); Collapser col = new Collapser(base -> base.pane(t -> t.margin(14f).add(Strings.parseException(exc, true)).color(Color.lightGray).left()), true); - cont.addButton("$details", Styles.togglet, col::toggle).size(180f, 50f).checked(b -> !col.isCollapsed()).fillX().right(); - cont.addButton("$ok", this::hide).size(110, 50).fillX().left(); + cont.button("$details", Styles.togglet, col::toggle).size(180f, 50f).checked(b -> !col.isCollapsed()).fillX().right(); + cont.button("$ok", this::hide).size(110, 50).fillX().left(); cont.row(); cont.add(col).colspan(2).pad(2); }}.show(); @@ -389,7 +390,7 @@ public class UI implements ApplicationListener, Loadable{ cont.margin(15); cont.add("$error.title").colspan(2); cont.row(); - cont.addImage().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); + cont.image().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); cont.row(); cont.add(text).colspan(2).wrap().growX().center().get().setAlignment(Align.center); cont.row(); @@ -401,14 +402,14 @@ public class UI implements ApplicationListener, Loadable{ Collapser col = new Collapser(base -> base.pane(t -> t.margin(14f).add(details).color(Color.lightGray).left()), true); cont.add(btext).right(); - cont.addButton("$details", Styles.togglet, col::toggle).size(180f, 50f).checked(b -> !col.isCollapsed()).fillX().left(); + cont.button("$details", Styles.togglet, col::toggle).size(180f, 50f).checked(b -> !col.isCollapsed()).fillX().left(); cont.row(); cont.add(col).colspan(2).pad(2); cont.row(); } //}).colspan(2); - cont.addButton("$ok", this::hide).size(300, 50).fillX().colspan(2); + cont.button("$ok", this::hide).size(300, 50).fillX().colspan(2); }}.show(); } @@ -419,18 +420,18 @@ public class UI implements ApplicationListener, Loadable{ public void showText(String titleText, String text, int align){ new Dialog(titleText){{ cont.row(); - cont.addImage().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent); + cont.image().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent); cont.row(); cont.add(text).width(400f).wrap().get().setAlignment(align, align); cont.row(); - buttons.addButton("$ok", this::hide).size(110, 50).pad(4); + buttons.button("$ok", this::hide).size(110, 50).pad(4); }}.show(); } public void showInfoText(String titleText, String text){ new Dialog(titleText){{ cont.margin(15).add(text).width(400f).wrap().left().get().setAlignment(Align.left, Align.left); - buttons.addButton("$ok", this::hide).size(110, 50).pad(4); + buttons.button("$ok", this::hide).size(110, 50).pad(4); }}.show(); } @@ -438,8 +439,8 @@ public class UI implements ApplicationListener, Loadable{ new Dialog(titleText){{ cont.margin(10).add(text); titleTable.row(); - titleTable.addImage().color(Pal.accent).height(3f).growX().pad(2f); - buttons.addButton("$ok", this::hide).size(110, 50).pad(4); + titleTable.image().color(Pal.accent).height(3f).growX().pad(2f); + buttons.button("$ok", this::hide).size(110, 50).pad(4); }}.show(); } @@ -452,8 +453,8 @@ public class UI implements ApplicationListener, Loadable{ dialog.cont.add(text).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); dialog.buttons.defaults().size(200f, 54f).pad(2f); dialog.setFillParent(false); - dialog.buttons.addButton("$cancel", dialog::hide); - dialog.buttons.addButton("$ok", () -> { + dialog.buttons.button("$cancel", dialog::hide); + dialog.buttons.button("$ok", () -> { dialog.hide(); confirmed.run(); }); @@ -464,8 +465,12 @@ public class UI implements ApplicationListener, Loadable{ } }); } - dialog.keyDown(KeyCode.ESCAPE, dialog::hide); - dialog.keyDown(KeyCode.BACK, dialog::hide); + dialog.keyDown(KeyCode.enter, () -> { + dialog.hide(); + confirmed.run(); + }); + dialog.keyDown(KeyCode.escape, dialog::hide); + dialog.keyDown(KeyCode.back, dialog::hide); dialog.show(); } @@ -474,16 +479,16 @@ public class UI implements ApplicationListener, Loadable{ dialog.cont.add(text).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); dialog.buttons.defaults().size(200f, 54f).pad(2f); dialog.setFillParent(false); - dialog.buttons.addButton(no, () -> { + dialog.buttons.button(no, () -> { dialog.hide(); denied.run(); }); - dialog.buttons.addButton(yes, () -> { + dialog.buttons.button(yes, () -> { dialog.hide(); confirmed.run(); }); - dialog.keyDown(KeyCode.ESCAPE, dialog::hide); - dialog.keyDown(KeyCode.BACK, dialog::hide); + dialog.keyDown(KeyCode.escape, dialog::hide); + dialog.keyDown(KeyCode.back, dialog::hide); dialog.show(); } @@ -492,7 +497,7 @@ public class UI implements ApplicationListener, Loadable{ dialog.cont.add(text).width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); dialog.buttons.defaults().size(200f, 54f).pad(2f); dialog.setFillParent(false); - dialog.buttons.addButton("$ok", () -> { + dialog.buttons.button("$ok", () -> { dialog.hide(); confirmed.run(); }); diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index e019213012..23199d17f1 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -66,28 +66,28 @@ public class MapEditorDialog extends Dialog implements Disposable{ menu.cont.table(t -> { t.defaults().size(swidth, 60f).padBottom(5).padRight(5).padLeft(5); - t.addImageTextButton("$editor.savemap", Icon.save, this::save); + t.button("$editor.savemap", Icon.save, this::save); - t.addImageTextButton("$editor.mapinfo", Icon.pencil, () -> { + t.button("$editor.mapinfo", Icon.pencil, () -> { infoDialog.show(); menu.hide(); }); t.row(); - t.addImageTextButton("$editor.generate", Icon.terrain, () -> { + t.button("$editor.generate", Icon.terrain, () -> { generateDialog.show(generateDialog::applyToEditor); menu.hide(); }); - t.addImageTextButton("$editor.resize", Icon.resize, () -> { + t.button("$editor.resize", Icon.resize, () -> { resizeDialog.show(); menu.hide(); }); t.row(); - t.addImageTextButton("$editor.import", Icon.download, () -> createDialog("$editor.import", + t.button("$editor.import", Icon.download, () -> createDialog("$editor.import", "$editor.importmap", "$editor.importmap.description", Icon.download, (Runnable)loadDialog::show, "$editor.importfile", "$editor.importfile.description", Icon.file, (Runnable)() -> platform.showFileChooser(true, mapExtension, file -> ui.loadAnd(() -> { @@ -114,7 +114,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ }))) ); - t.addImageTextButton("$editor.export", Icon.upload, () -> createDialog("$editor.export", + t.button("$editor.export", Icon.upload, () -> createDialog("$editor.export", "$editor.exportfile", "$editor.exportfile.description", Icon.file, (Runnable)() -> platform.export(editor.getTags().get("name", "unknown"), mapExtension, file -> MapIO.writeMap(file, editor.createMap(file))), "$editor.exportimage", "$editor.exportimage.description", Icon.fileImage, @@ -128,7 +128,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ menu.cont.row(); if(steam){ - menu.cont.addImageTextButton("$editor.publish.workshop", Icon.link, () -> { + menu.cont.button("$editor.publish.workshop", Icon.link, () -> { Map builtin = maps.all().find(m -> m.name().equals(editor.getTags().get("name", "").trim())); if(editor.getTags().containsKey("steamid") && builtin != null && !builtin.custom){ @@ -161,11 +161,11 @@ public class MapEditorDialog extends Dialog implements Disposable{ menu.cont.row(); } - menu.cont.addImageTextButton("$editor.ingame", Icon.right, this::playtest).padTop(!steam ? -3 : 1).size(swidth * 2f + 10, 60f); + menu.cont.button("$editor.ingame", Icon.right, this::playtest).padTop(!steam ? -3 : 1).size(swidth * 2f + 10, 60f); menu.cont.row(); - menu.cont.addImageTextButton("$quit", Icon.exit, () -> { + menu.cont.button("$quit", Icon.exit, () -> { tryExit(); menu.hide(); }).size(swidth * 2f + 10, 60f); @@ -321,14 +321,14 @@ public class MapEditorDialog extends Dialog implements Disposable{ Drawable iconname = (Drawable)arguments[i + 2]; Runnable listenable = (Runnable)arguments[i + 3]; - TextButton button = dialog.cont.addButton(name, () -> { + TextButton button = dialog.cont.button(name, () -> { listenable.run(); dialog.hide(); menu.hide(); }).left().margin(0).get(); button.clearChildren(); - button.addImage(iconname).padLeft(10); + button.image(iconname).padLeft(10); button.table(t -> { t.add(name).growX().wrap(); t.row(); @@ -419,7 +419,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ button.clicked(l -> { if(!mobile){ //desktop: rightclick - l.setButton(KeyCode.MOUSE_RIGHT); + l.setButton(KeyCode.mouseRight); } }, e -> { //need to double tap @@ -438,7 +438,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ int mode = i; String name = tool.altModes[i]; - table.addButton(b -> { + table.button(b -> { b.left(); b.marginLeft(6); b.setStyle(Styles.clearTogglet); @@ -481,16 +481,16 @@ public class MapEditorDialog extends Dialog implements Disposable{ tools.defaults().size(size, size); - tools.addImageButton(Icon.menu, Styles.cleari, menu::show); + tools.button(Icon.menu, Styles.cleari, menu::show); - ImageButton grid = tools.addImageButton(Icon.grid, Styles.clearTogglei, () -> view.setGrid(!view.isGrid())).get(); + ImageButton grid = tools.button(Icon.grid, Styles.clearTogglei, () -> view.setGrid(!view.isGrid())).get(); addTool.get(EditorTool.zoom); tools.row(); - ImageButton undo = tools.addImageButton(Icon.undo, Styles.cleari, editor::undo).get(); - ImageButton redo = tools.addImageButton(Icon.redo, Styles.cleari, editor::redo).get(); + ImageButton undo = tools.button(Icon.undo, Styles.cleari, editor::undo).get(); + ImageButton redo = tools.button(Icon.redo, Styles.cleari, editor::redo).get(); addTool.get(EditorTool.pick); @@ -512,7 +512,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ addTool.get(EditorTool.fill); addTool.get(EditorTool.spray); - ImageButton rotate = tools.addImageButton(Icon.right, Styles.cleari, () -> editor.rotation = (editor.rotation + 1) % 4).get(); + ImageButton rotate = tools.button(Icon.right, Styles.cleari, () -> editor.rotation = (editor.rotation + 1) % 4).get(); rotate.getImage().update(() -> { rotate.getImage().setRotation(editor.rotation * 90); rotate.getImage().setOrigin(Align.center); @@ -576,14 +576,14 @@ public class MapEditorDialog extends Dialog implements Disposable{ if(Core.input.ctrl()){ //alt mode select for(int i = 0; i < view.getTool().altModes.length + 1; i++){ - if(Core.input.keyTap(KeyCode.valueOf("NUM_" + (i + 1)))){ + if(Core.input.keyTap(KeyCode.valueOf("num" + (i + 1)))){ view.getTool().mode = i - 1; } } }else{ //tool select for(int i = 0; i < EditorTool.values().length; i++){ - if(Core.input.keyTap(KeyCode.valueOf("NUM_" + (i + 1)))){ + if(Core.input.keyTap(KeyCode.valueOf("num" + (i + 1)))){ view.setTool(EditorTool.values()[i]); break; } @@ -591,28 +591,28 @@ public class MapEditorDialog extends Dialog implements Disposable{ } - if(Core.input.keyTap(KeyCode.ESCAPE)){ + if(Core.input.keyTap(KeyCode.escape)){ if(!menu.isShown()){ menu.show(); } } - if(Core.input.keyTap(KeyCode.R)){ + if(Core.input.keyTap(KeyCode.r)){ editor.rotation = Mathf.mod(editor.rotation + 1, 4); } - if(Core.input.keyTap(KeyCode.E)){ + if(Core.input.keyTap(KeyCode.e)){ editor.rotation = Mathf.mod(editor.rotation - 1, 4); } //ctrl keys (undo, redo, save) if(Core.input.ctrl()){ - if(Core.input.keyTap(KeyCode.Z)){ + if(Core.input.keyTap(KeyCode.z)){ editor.undo(); } //more undocumented features, fantastic - if(Core.input.keyTap(KeyCode.T)){ + if(Core.input.keyTap(KeyCode.t)){ //clears all 'decoration' from the map for(int x = 0; x < editor.width(); x++){ @@ -633,15 +633,15 @@ public class MapEditorDialog extends Dialog implements Disposable{ editor.flushOp(); } - if(Core.input.keyTap(KeyCode.Y)){ + if(Core.input.keyTap(KeyCode.y)){ editor.redo(); } - if(Core.input.keyTap(KeyCode.S)){ + if(Core.input.keyTap(KeyCode.s)){ save(); } - if(Core.input.keyTap(KeyCode.G)){ + if(Core.input.keyTap(KeyCode.g)){ view.setGrid(!view.isGrid()); } } diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index fdc5b47815..1fc6752f55 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -66,27 +66,27 @@ public class MapGenerateDialog extends FloatingDialog{ shown(this::setup); addCloseButton(); if(applied){ - buttons.addButton("$editor.apply", () -> { + buttons.button("$editor.apply", () -> { ui.loadAnd(() -> { apply(); hide(); }); }).size(160f, 64f); }else{ - buttons.addButton("$settings.reset", () -> { + buttons.button("$settings.reset", () -> { filters.set(maps.readFilters("")); rebuildFilters(); update(); }).size(160f, 64f); } - buttons.addButton("$editor.randomize", () -> { + buttons.button("$editor.randomize", () -> { for(GenerateFilter filter : filters){ filter.randomize(); } update(); }).size(160f, 64f); - buttons.addImageTextButton("$add", Icon.add, this::showAdd).height(64f).width(140f); + buttons.button("$add", Icon.add, this::showAdd).height(64f).width(140f); if(!applied){ hidden(this::apply); @@ -234,24 +234,24 @@ public class MapGenerateDialog extends FloatingDialog{ t.table(b -> { ImageButtonStyle style = Styles.cleari; b.defaults().size(50f); - b.addImageButton(Icon.refresh, style, () -> { + b.button(Icon.refresh, style, () -> { filter.randomize(); update(); }); - b.addImageButton(Icon.upOpen, style, () -> { + b.button(Icon.upOpen, style, () -> { int idx = filters.indexOf(filter); filters.swap(idx, Math.max(0, idx - 1)); rebuildFilters(); update(); }); - b.addImageButton(Icon.downOpen, style, () -> { + b.button(Icon.downOpen, style, () -> { int idx = filters.indexOf(filter); filters.swap(idx, Math.min(filters.size - 1, idx + 1)); rebuildFilters(); update(); }); - b.addImageButton(Icon.trash, style, () -> { + b.button(Icon.trash, style, () -> { filters.remove(filter); rebuildFilters(); update(); @@ -293,7 +293,7 @@ public class MapGenerateDialog extends FloatingDialog{ if((!applied && filter.isBuffered()) || (filter.isPost() && applied)) continue; - selection.cont.addButton(filter.name(), () -> { + selection.cont.button(filter.name(), () -> { filters.add(filter); rebuildFilters(); update(); @@ -302,7 +302,7 @@ public class MapGenerateDialog extends FloatingDialog{ if(++i % 2 == 0) selection.cont.row(); } - selection.cont.addButton("$filter.defaultores", () -> { + selection.cont.button("$filter.defaultores", () -> { maps.addDefaultOres(filters); rebuildFilters(); update(); diff --git a/core/src/mindustry/editor/MapInfoDialog.java b/core/src/mindustry/editor/MapInfoDialog.java index 743dcbb9af..3a4f2ce245 100644 --- a/core/src/mindustry/editor/MapInfoDialog.java +++ b/core/src/mindustry/editor/MapInfoDialog.java @@ -35,7 +35,7 @@ public class MapInfoDialog extends FloatingDialog{ t.add("$editor.mapname").padRight(8).left(); t.defaults().padTop(15); - TextField name = t.addField(tags.get("name", ""), text -> { + TextField name = t.field(tags.get("name", ""), text -> { tags.put("name", text); }).size(400, 55f).get(); name.setMessageText("$unknown"); @@ -43,14 +43,14 @@ public class MapInfoDialog extends FloatingDialog{ t.row(); t.add("$editor.description").padRight(8).left(); - TextArea description = t.addArea(tags.get("description", ""), Styles.areaField, text -> { + TextArea description = t.area(tags.get("description", ""), Styles.areaField, text -> { tags.put("description", text); }).size(400f, 140f).get(); t.row(); t.add("$editor.author").padRight(8).left(); - TextField author = t.addField(tags.get("author", Core.settings.getString("mapAuthor", "")), text -> { + TextField author = t.field(tags.get("author", Core.settings.getString("mapAuthor", "")), text -> { tags.put("author", text); Core.settings.put("mapAuthor", text); Core.settings.save(); @@ -59,21 +59,21 @@ public class MapInfoDialog extends FloatingDialog{ t.row(); t.add("$editor.rules").padRight(8).left(); - t.addButton("$edit", () -> { + t.button("$edit", () -> { ruleInfo.show(Vars.state.rules, () -> Vars.state.rules = new Rules()); hide(); }).left().width(200f); t.row(); t.add("$editor.waves").padRight(8).left(); - t.addButton("$edit", () -> { + t.button("$edit", () -> { waveInfo.show(); hide(); }).left().width(200f); t.row(); t.add("$editor.generation").padRight(8).left(); - t.addButton("$edit", () -> { + t.button("$edit", () -> { generate.show(Vars.maps.readFilters(editor.getTags().get("genfilters", "")), filters -> editor.getTags().put("genfilters", JsonIO.write(filters))); hide(); diff --git a/core/src/mindustry/editor/MapLoadDialog.java b/core/src/mindustry/editor/MapLoadDialog.java index 7694d0fc4f..01d207111c 100644 --- a/core/src/mindustry/editor/MapLoadDialog.java +++ b/core/src/mindustry/editor/MapLoadDialog.java @@ -28,7 +28,7 @@ public class MapLoadDialog extends FloatingDialog{ }); buttons.defaults().size(200f, 50f); - buttons.addButton("$cancel", this::hide); + buttons.button("$cancel", this::hide); buttons.add(button); } diff --git a/core/src/mindustry/editor/MapResizeDialog.java b/core/src/mindustry/editor/MapResizeDialog.java index 6eaf62eb42..1e86dd6560 100644 --- a/core/src/mindustry/editor/MapResizeDialog.java +++ b/core/src/mindustry/editor/MapResizeDialog.java @@ -22,7 +22,7 @@ public class MapResizeDialog extends FloatingDialog{ for(boolean w : Mathf.booleans){ table.add(w ? "$width" : "$height").padRight(8f); table.defaults().height(60f).padTop(8); - table.addButton("<", () -> { + table.button("<", () -> { if(w) width = move(width, -1); else @@ -31,7 +31,7 @@ public class MapResizeDialog extends FloatingDialog{ table.table(Tex.button, t -> t.label(() -> (w ? width : height) + "")).width(200); - table.addButton(">", () -> { + table.button(">", () -> { if(w) width = move(width, 1); else @@ -45,8 +45,8 @@ public class MapResizeDialog extends FloatingDialog{ }); buttons.defaults().size(200f, 50f); - buttons.addButton("$cancel", this::hide); - buttons.addButton("$ok", () -> { + buttons.button("$cancel", this::hide); + buttons.button("$ok", () -> { cons.get(width, height); hide(); }); diff --git a/core/src/mindustry/editor/MapSaveDialog.java b/core/src/mindustry/editor/MapSaveDialog.java index 34eb4d6286..909957eb12 100644 --- a/core/src/mindustry/editor/MapSaveDialog.java +++ b/core/src/mindustry/editor/MapSaveDialog.java @@ -38,7 +38,7 @@ public class MapSaveDialog extends FloatingDialog{ }); buttons.defaults().size(200f, 50f).pad(2f); - buttons.addButton("$cancel", this::hide); + buttons.button("$cancel", this::hide); TextButton button = new TextButton("$save"); button.clicked(() -> { diff --git a/core/src/mindustry/editor/MapView.java b/core/src/mindustry/editor/MapView.java index 23c7afae96..d02b7d3e82 100644 --- a/core/src/mindustry/editor/MapView.java +++ b/core/src/mindustry/editor/MapView.java @@ -72,11 +72,11 @@ public class MapView extends Element implements GestureListener{ return false; } - if(!mobile && button != KeyCode.MOUSE_LEFT && button != KeyCode.MOUSE_MIDDLE){ + if(!mobile && button != KeyCode.mouseLeft && button != KeyCode.mouseMiddle){ return true; } - if(button == KeyCode.MOUSE_MIDDLE){ + if(button == KeyCode.mouseMiddle){ lastTool = tool; tool = EditorTool.zoom; } @@ -102,7 +102,7 @@ public class MapView extends Element implements GestureListener{ @Override public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){ - if(!mobile && button != KeyCode.MOUSE_LEFT && button != KeyCode.MOUSE_MIDDLE){ + if(!mobile && button != KeyCode.mouseLeft && button != KeyCode.mouseMiddle){ return; } @@ -117,7 +117,7 @@ public class MapView extends Element implements GestureListener{ editor.flushOp(); - if(button == KeyCode.MOUSE_MIDDLE && lastTool != null){ + if(button == KeyCode.mouseMiddle && lastTool != null){ tool = lastTool; lastTool = null; } @@ -172,26 +172,26 @@ public class MapView extends Element implements GestureListener{ public void act(float delta){ super.act(delta); - if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && !Core.input.keyDown(KeyCode.CONTROL_LEFT)){ + if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && !Core.input.keyDown(KeyCode.controlLeft)){ float ax = Core.input.axis(Binding.move_x); float ay = Core.input.axis(Binding.move_y); offsetx -= ax * 15f / zoom; offsety -= ay * 15f / zoom; } - if(Core.input.keyTap(KeyCode.SHIFT_LEFT)){ + if(Core.input.keyTap(KeyCode.shiftLeft)){ lastTool = tool; tool = EditorTool.pick; } - if(Core.input.keyRelease(KeyCode.SHIFT_LEFT) && lastTool != null){ + if(Core.input.keyRelease(KeyCode.shiftLeft) && lastTool != null){ tool = lastTool; lastTool = null; } if(Core.scene.getScrollFocus() != this) return; - zoom += Core.input.axis(KeyCode.SCROLL) / 10f * zoom; + zoom += Core.input.axis(KeyCode.scroll) / 10f * zoom; clampZoom(); } diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index 50ee9de42e..a9e42e6326 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -42,24 +42,24 @@ public class WaveInfoDialog extends FloatingDialog{ }); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ + if(key == KeyCode.escape || key == KeyCode.back){ Core.app.post(this::hide); } }); addCloseButton(); - buttons.addButton("$waves.edit", () -> { + buttons.button("$waves.edit", () -> { FloatingDialog dialog = new FloatingDialog("$waves.edit"); dialog.addCloseButton(); dialog.setFillParent(false); dialog.cont.defaults().size(210f, 64f); - dialog.cont.addButton("$waves.copy", () -> { + dialog.cont.button("$waves.copy", () -> { ui.showInfoFade("$waves.copied"); Core.app.setClipboardText(maps.writeWaves(groups)); dialog.hide(); }).disabled(b -> groups == null); dialog.cont.row(); - dialog.cont.addButton("$waves.load", () -> { + dialog.cont.button("$waves.load", () -> { try{ groups = maps.readWaves(Core.app.getClipboardText()); buildGroups(); @@ -70,7 +70,7 @@ public class WaveInfoDialog extends FloatingDialog{ dialog.hide(); }).disabled(b -> Core.app.getClipboardText() == null || Core.app.getClipboardText().isEmpty()); dialog.cont.row(); - dialog.cont.addButton("$settings.reset", () -> ui.showConfirm("$confirm", "$settings.clear.confirm", () -> { + dialog.cont.button("$settings.reset", () -> ui.showConfirm("$confirm", "$settings.clear.confirm", () -> { groups = JsonIO.copy(defaultWaves.get()); buildGroups(); dialog.hide(); @@ -86,7 +86,7 @@ public class WaveInfoDialog extends FloatingDialog{ cont.stack(new Table(Tex.clear, main -> { main.pane(t -> table = t).growX().growY().padRight(8f).get().setScrollingDisabled(true, false); main.row(); - main.addButton("$add", () -> { + main.button("$add", () -> { if(groups == null) groups = new Array<>(); groups.add(new SpawnGroup(lastType)); buildGroups(); @@ -101,7 +101,7 @@ public class WaveInfoDialog extends FloatingDialog{ cont.table(Tex.clear, m -> { m.add("$waves.preview").color(Color.lightGray).growX().center().get().setAlignment(Align.center, Align.center); m.row(); - m.addButton("-", () -> { + m.button("-", () -> { }).update(t -> { if(t.getClickListener().isPressed()){ updateTimer += Time.delta(); @@ -115,7 +115,7 @@ public class WaveInfoDialog extends FloatingDialog{ m.row(); m.pane(t -> preview = t).grow().get().setScrollingDisabled(true, true); m.row(); - m.addButton("+", () -> { + m.button("+", () -> { }).update(t -> { if(t.getClickListener().isPressed()){ updateTimer += Time.delta(); @@ -140,22 +140,22 @@ public class WaveInfoDialog extends FloatingDialog{ for(SpawnGroup group : groups){ table.table(Tex.button, t -> { t.margin(0).defaults().pad(3).padLeft(5f).growX().left(); - t.addButton(b -> { + t.button(b -> { b.left(); - b.addImage(group.type.icon(mindustry.ui.Cicon.medium)).size(32f).padRight(3); + b.image(group.type.icon(mindustry.ui.Cicon.medium)).size(32f).padRight(3); b.add(group.type.localizedName).color(Pal.accent); }, () -> showUpdate(group)).pad(-6f).padBottom(0f); t.row(); t.table(spawns -> { - spawns.addField("" + (group.begin + 1), TextFieldFilter.digitsOnly, text -> { + spawns.field("" + (group.begin + 1), TextFieldFilter.digitsOnly, text -> { if(Strings.canParsePostiveInt(text)){ group.begin = Strings.parseInt(text) - 1; updateWaves(); } }).width(100f); spawns.add("$waves.to").padLeft(4).padRight(4); - spawns.addField(group.end == never ? "" : (group.end + 1) + "", TextFieldFilter.digitsOnly, text -> { + spawns.field(group.end == never ? "" : (group.end + 1) + "", TextFieldFilter.digitsOnly, text -> { if(Strings.canParsePostiveInt(text)){ group.end = Strings.parseInt(text) - 1; updateWaves(); @@ -168,7 +168,7 @@ public class WaveInfoDialog extends FloatingDialog{ t.row(); t.table(p -> { p.add("$waves.every").padRight(4); - p.addField(group.spacing + "", TextFieldFilter.digitsOnly, text -> { + p.field(group.spacing + "", TextFieldFilter.digitsOnly, text -> { if(Strings.canParsePostiveInt(text) && Strings.parseInt(text) > 0){ group.spacing = Strings.parseInt(text); updateWaves(); @@ -179,7 +179,7 @@ public class WaveInfoDialog extends FloatingDialog{ t.row(); t.table(a -> { - a.addField(group.unitAmount + "", TextFieldFilter.digitsOnly, text -> { + a.field(group.unitAmount + "", TextFieldFilter.digitsOnly, text -> { if(Strings.canParsePostiveInt(text)){ group.unitAmount = Strings.parseInt(text); updateWaves(); @@ -187,7 +187,7 @@ public class WaveInfoDialog extends FloatingDialog{ }).width(80f); a.add(" + "); - a.addField(Strings.fixed(Math.max((Mathf.zero(group.unitScaling) ? 0 : 1f / group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> { + a.field(Strings.fixed(Math.max((Mathf.zero(group.unitScaling) ? 0 : 1f / group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> { if(Strings.canParsePositiveFloat(text)){ group.unitScaling = 1f / Strings.parseFloat(text); updateWaves(); @@ -197,10 +197,10 @@ public class WaveInfoDialog extends FloatingDialog{ }); t.row(); - t.addCheck("$waves.boss", b -> group.effect = (b ? StatusEffects.boss : null)).padTop(4).update(b -> b.setChecked(group.effect == StatusEffects.boss)); + t.check("$waves.boss", b -> group.effect = (b ? StatusEffects.boss : null)).padTop(4).update(b -> b.setChecked(group.effect == StatusEffects.boss)); t.row(); - t.addButton("$waves.remove", () -> { + t.button("$waves.remove", () -> { groups.remove(group); table.getCell(t).pad(0f); t.remove(); @@ -222,9 +222,9 @@ public class WaveInfoDialog extends FloatingDialog{ dialog.cont.pane(p -> { int i = 0; for(UnitType type : content.units()){ - p.addButton(t -> { + p.button(t -> { t.left(); - t.addImage(type.icon(mindustry.ui.Cicon.medium)).size(40f).padRight(2f); + t.image(type.icon(mindustry.ui.Cicon.medium)).size(40f).padRight(2f); t.add(type.localizedName); }, () -> { lastType = type; @@ -257,7 +257,7 @@ public class WaveInfoDialog extends FloatingDialog{ for(int j = 0; j < spawned.length; j++){ if(spawned[j] > 0){ UnitType type = content.getByID(ContentType.unit, j); - table.addImage(type.icon(Cicon.medium)).size(8f * 4f).padRight(4); + table.image(type.icon(Cicon.medium)).size(8f * 4f).padRight(4); table.add(spawned[j] + "x").color(Color.lightGray).padRight(6); table.row(); } diff --git a/core/src/mindustry/entities/AllDefs.java b/core/src/mindustry/entities/AllDefs.java index b042733b89..090218ef40 100644 --- a/core/src/mindustry/entities/AllDefs.java +++ b/core/src/mindustry/entities/AllDefs.java @@ -34,4 +34,9 @@ class AllDefs{ class sync{ } + + @GroupDef(Drawc.class) + class draw{ + + } } diff --git a/core/src/mindustry/entities/Effects.java b/core/src/mindustry/entities/Effects.java index 2f1eb20faf..86f3defddd 100644 --- a/core/src/mindustry/entities/Effects.java +++ b/core/src/mindustry/entities/Effects.java @@ -42,7 +42,7 @@ public class Effects{ Rect pos = Tmp.r2.setSize(effect.size).setCenter(x, y); if(view.overlaps(pos)){ - Effectc entity = effect.ground ? GroundEffectEntity.create() : StandardEffectEntity.create(); + Effectc entity = EffectEntity.create(); entity.effect(effect); entity.rotation(rotation); entity.data(data); diff --git a/core/src/mindustry/entities/def/BuilderComp.java b/core/src/mindustry/entities/def/BuilderComp.java index 361a703a21..ce3ba8af6f 100644 --- a/core/src/mindustry/entities/def/BuilderComp.java +++ b/core/src/mindustry/entities/def/BuilderComp.java @@ -23,7 +23,7 @@ import java.util.*; import static mindustry.Vars.*; @Component -abstract class BuilderComp implements Unitc, DrawLayerFlyingc{ +abstract class BuilderComp implements Unitc{ static final Vec2[] vecs = new Vec2[]{new Vec2(), new Vec2(), new Vec2(), new Vec2()}; @Import float x, y, rotation; @@ -197,8 +197,12 @@ abstract class BuilderComp implements Unitc, DrawLayerFlyingc{ } @Override - public void drawFlying(){ + public void draw(){ if(!isBuilding()) return; + + //TODO check correctness + Draw.z(Layer.flyingUnit); + BuildRequest request = buildRequest(); Tile tile = world.tile(request.x, request.y); diff --git a/core/src/mindustry/entities/def/BulletComp.java b/core/src/mindustry/entities/def/BulletComp.java index 6a24ab61c2..abd68a7128 100644 --- a/core/src/mindustry/entities/def/BulletComp.java +++ b/core/src/mindustry/entities/def/BulletComp.java @@ -1,5 +1,6 @@ package mindustry.entities.def; +import arc.graphics.g2d.*; import arc.math.*; import arc.util.*; import mindustry.annotations.Annotations.*; @@ -11,7 +12,7 @@ import static mindustry.Vars.*; @EntityDef(value = {Bulletc.class}, pooled = true) @Component -abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Drawc, Shielderc, Ownerc, Velc, Bulletc, Timerc, DrawLayerBulletsc{ +abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Drawc, Shielderc, Ownerc, Velc, Bulletc, Timerc{ Object data; BulletType type; float damage; @@ -109,6 +110,8 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw @Override public void draw(){ + Draw.z(Layer.bullet); + type.draw(this); //TODO refactor renderer.lights.add(x(), y(), 16f, Pal.powerLight, 0.3f); diff --git a/core/src/mindustry/entities/def/DecalComp.java b/core/src/mindustry/entities/def/DecalComp.java index cb95bd4ad2..775f3d85de 100644 --- a/core/src/mindustry/entities/def/DecalComp.java +++ b/core/src/mindustry/entities/def/DecalComp.java @@ -8,14 +8,14 @@ import mindustry.gen.*; @EntityDef(value = {Decalc.class}, pooled = true) @Component -abstract class DecalComp implements Drawc, Timedc, Rotc, Posc, DrawLayerFloorc{ +abstract class DecalComp implements Drawc, Timedc, Rotc, Posc{ @Import float x, y, rotation; Color color = new Color(1, 1, 1, 1); TextureRegion region; @Override - public void drawFloor(){ + public void draw(){ Draw.color(color); Draw.alpha(1f - Mathf.curve(fin(), 0.98f)); Draw.rect(region, x, y, rotation); diff --git a/core/src/mindustry/entities/def/DrawComp.java b/core/src/mindustry/entities/def/DrawComp.java index 123c6a14ed..d94de2d4df 100644 --- a/core/src/mindustry/entities/def/DrawComp.java +++ b/core/src/mindustry/entities/def/DrawComp.java @@ -6,4 +6,8 @@ import mindustry.gen.*; @Component abstract class DrawComp implements Posc{ abstract float clipSize(); + + void draw(){ + + } } diff --git a/core/src/mindustry/entities/def/EffectComp.java b/core/src/mindustry/entities/def/EffectComp.java index b090a256f2..38d28caa4c 100644 --- a/core/src/mindustry/entities/def/EffectComp.java +++ b/core/src/mindustry/entities/def/EffectComp.java @@ -1,17 +1,22 @@ package mindustry.entities.def; import arc.graphics.*; +import arc.graphics.g2d.*; import mindustry.annotations.Annotations.*; import mindustry.entities.*; import mindustry.gen.*; +import mindustry.graphics.*; +@EntityDef(value = {Effectc.class, Childc.class}, pooled = true) @Component abstract class EffectComp implements Posc, Drawc, Timedc, Rotc, Childc{ Color color = new Color(Color.white); Effect effect; Object data; - void draw(){ + @Override + public void draw(){ + Draw.z(Layer.effect); effect.render(id(), color, time(), rotation(), x(), y(), data); } diff --git a/core/src/mindustry/entities/def/GroundEffectComp.java b/core/src/mindustry/entities/def/GroundEffectComp.java deleted file mode 100644 index a080ad3aac..0000000000 --- a/core/src/mindustry/entities/def/GroundEffectComp.java +++ /dev/null @@ -1,14 +0,0 @@ -package mindustry.entities.def; - -import mindustry.annotations.Annotations.*; -import mindustry.gen.*; - -@EntityDef(value = {GroundEffectc.class, Childc.class}, pooled = true) -@Component -abstract class GroundEffectComp implements Effectc, DrawLayerFloorOverc{ - - @Override - public void drawFloorOver(){ - draw(); - } -} diff --git a/core/src/mindustry/entities/def/LegsComp.java b/core/src/mindustry/entities/def/LegsComp.java index d4d651bac0..22d5acb64f 100644 --- a/core/src/mindustry/entities/def/LegsComp.java +++ b/core/src/mindustry/entities/def/LegsComp.java @@ -6,7 +6,7 @@ import mindustry.annotations.Annotations.*; import mindustry.gen.*; @Component -abstract class LegsComp implements Posc, Flyingc, Hitboxc, DrawLayerGroundUnderc, Unitc, Legsc, ElevationMovec{ +abstract class LegsComp implements Posc, Flyingc, Hitboxc, Unitc, Legsc, ElevationMovec{ @Import float x, y; float baseRotation; @@ -18,9 +18,4 @@ abstract class LegsComp implements Posc, Flyingc, Hitboxc, DrawLayerGroundUnderc baseRotation = Angles.moveToward(baseRotation, vel().angle(), type().baseRotateSpeed * Mathf.clamp(len / type().speed)); walkTime += Time.delta()*len/1f; } - - @Override - public void drawGroundUnder(){ - type().drawLegs(this); - } } diff --git a/core/src/mindustry/entities/def/MinerComp.java b/core/src/mindustry/entities/def/MinerComp.java index 6cb6013b9f..bf485ded2f 100644 --- a/core/src/mindustry/entities/def/MinerComp.java +++ b/core/src/mindustry/entities/def/MinerComp.java @@ -17,7 +17,7 @@ import mindustry.world.*; import static mindustry.Vars.*; @Component -abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, DrawLayerGroundc{ +abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{ @Import float x, y, rotation; transient float mineTimer; @@ -80,7 +80,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, DrawLayerGroundc{ } @Override - public void drawGround(){ + public void draw(){ if(!mining()) return; float focusLen = 4f + Mathf.absin(Time.time(), 1.1f, 0.5f); float swingScl = 12f, swingMag = tilesize / 8f; diff --git a/core/src/mindustry/entities/def/PlayerComp.java b/core/src/mindustry/entities/def/PlayerComp.java index 22a6b73498..34651ea815 100644 --- a/core/src/mindustry/entities/def/PlayerComp.java +++ b/core/src/mindustry/entities/def/PlayerComp.java @@ -13,6 +13,7 @@ import mindustry.core.*; import mindustry.entities.units.*; import mindustry.game.*; import mindustry.gen.*; +import mindustry.graphics.*; import mindustry.net.Administration.*; import mindustry.net.*; import mindustry.net.Packets.*; @@ -23,7 +24,7 @@ import static mindustry.Vars.*; @EntityDef(value = {Playerc.class}, serialize = false) @Component -abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc{ +abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Drawc{ @NonNull @ReadOnly Unitc unit = Nulls.unit; @ReadOnly Team team = Team.sharded; @@ -58,6 +59,12 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc{ } } + @Override + public float clipSize(){ + return 20; + } + + @Override public void update(){ if(unit.dead()){ clearUnit(); @@ -130,7 +137,10 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc{ con.kick(reason); } - void drawName(){ + @Override + public void draw(){ + Draw.z(Layer.playerName); + BitmapFont font = Fonts.def; GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); final float nameHeight = 11; diff --git a/core/src/mindustry/entities/def/PuddleComp.java b/core/src/mindustry/entities/def/PuddleComp.java index 60de284777..a5d65d537a 100644 --- a/core/src/mindustry/entities/def/PuddleComp.java +++ b/core/src/mindustry/entities/def/PuddleComp.java @@ -10,6 +10,7 @@ import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; +import mindustry.graphics.*; import mindustry.type.*; import mindustry.world.*; @@ -18,7 +19,7 @@ import static mindustry.entities.Puddles.maxLiquid; @EntityDef(value = {Puddlec.class}, pooled = true) @Component -abstract class PuddleComp implements Posc, DrawLayerFloorOverc, Puddlec{ +abstract class PuddleComp implements Posc, Puddlec{ private static final int maxGeneration = 2; private static final Color tmp = new Color(); private static final Rect rect = new Rect(); @@ -89,7 +90,9 @@ abstract class PuddleComp implements Posc, DrawLayerFloorOverc, Puddlec{ } @Override - public void drawFloorOver(){ + public void draw(){ + Draw.z(Layer.debris - 1); + seeds = id(); boolean onLiquid = tile.floor().isLiquid; float f = Mathf.clamp(amount / (maxLiquid / 1.5f)); diff --git a/core/src/mindustry/entities/def/StandardEffectComp.java b/core/src/mindustry/entities/def/StandardEffectComp.java deleted file mode 100644 index 5622a589e4..0000000000 --- a/core/src/mindustry/entities/def/StandardEffectComp.java +++ /dev/null @@ -1,14 +0,0 @@ -package mindustry.entities.def; - -import mindustry.annotations.Annotations.*; -import mindustry.gen.*; - -@EntityDef(value = {StandardEffectc.class, Childc.class}, pooled = true) -@Component -abstract class StandardEffectComp implements Effectc, DrawLayerEffectsc{ - - @Override - public void drawEffects(){ - draw(); - } -} diff --git a/core/src/mindustry/entities/def/TileComp.java b/core/src/mindustry/entities/def/TileComp.java index 9959c37524..f3f037c37a 100644 --- a/core/src/mindustry/entities/def/TileComp.java +++ b/core/src/mindustry/entities/def/TileComp.java @@ -615,12 +615,6 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree } } - public void drawLayer(){ - } - - public void drawLayer2(){ - } - public void drawCracks(){ if(!damaged() || block.size > Block.maxCrackSize) return; int id = pos(); @@ -824,7 +818,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree l.clearChildren(); for(Item item : content.items()){ if(items.flownBits() != null && items.flownBits().get(item.id)){ - l.addImage(item.icon(Cicon.small)).padRight(3f); + l.image(item.icon(Cicon.small)).padRight(3f); l.label(() -> items.getFlowRate(item) < 0 ? "..." : Strings.fixed(items.getFlowRate(item), 1) + ps).color(Color.lightGray); l.row(); } @@ -845,7 +839,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree table.row(); table.table(l -> { l.left(); - l.addImage(() -> liquids.current().icon(Cicon.small)).padRight(3f); + l.image(() -> liquids.current().icon(Cicon.small)).padRight(3f); l.label(() -> liquids.getFlowRate() < 0 ? "..." : Strings.fixed(liquids.getFlowRate(), 2) + ps).color(Color.lightGray); }); } diff --git a/core/src/mindustry/entities/def/UnitComp.java b/core/src/mindustry/entities/def/UnitComp.java index 89e15106b5..e8b8d3d664 100644 --- a/core/src/mindustry/entities/def/UnitComp.java +++ b/core/src/mindustry/entities/def/UnitComp.java @@ -18,8 +18,7 @@ import mindustry.world.blocks.environment.*; import static mindustry.Vars.*; @Component -abstract class UnitComp implements Healthc, Velc, Statusc, Teamc, Itemsc, Hitboxc, Rotc, Massc, Unitc, Weaponsc, Drawc, Boundedc, - DrawLayerGroundc, DrawLayerFlyingc, DrawLayerGroundShadowsc, DrawLayerFlyingShadowsc, Syncc{ +abstract class UnitComp implements Healthc, Velc, Statusc, Teamc, Itemsc, Hitboxc, Rotc, Massc, Unitc, Weaponsc, Drawc, Boundedc, Syncc{ @Import float x, y, rotation, elevation; private UnitController controller; @@ -172,32 +171,7 @@ abstract class UnitComp implements Healthc, Velc, Statusc, Teamc, Itemsc, Hitbox @Override public void draw(){ - type.drawEngine(this); - type.drawBody(this); - type.drawWeapons(this); - if(type.drawCell) type.drawCell(this); - if(type.drawItems) type.drawItems(this); - type.drawLight(this); - } - - @Override - public void drawFlyingShadows(){ - if(isFlying()) type.drawShadow(this); - } - - @Override - public void drawGroundShadows(){ - type.drawOcclusion(this); - } - - @Override - public void drawFlying(){ - if(isFlying()) draw(); - } - - @Override - public void drawGround(){ - if(isGrounded()) draw(); + type.draw(this); } @Override diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index e1625f3c80..26ccf60824 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -81,7 +81,7 @@ public class Rules{ public boolean canGameOver = true; /** Whether to draw shadows of blocks at map edges and static blocks. * Do not change unless you know exactly what you are doing.*/ - public boolean drawFog = true; + public boolean drawDarkness = true; /** Starting items put in cores */ public Array loadout = Array.with(ItemStack.with(Items.copper, 100)); /** Blocks that cannot be placed. */ diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java index 1a0a58abfa..bd0ead2373 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -51,7 +51,9 @@ public class Schematics implements Loadable{ private OptimizedByteArrayOutputStream out = new OptimizedByteArrayOutputStream(1024); private Array all = new Array<>(); private OrderedMap previews = new OrderedMap<>(); + private ObjectSet errored = new ObjectSet<>(); private FrameBuffer shadowBuffer; + private Texture errorTexture; private long lastClearTime; public Schematics(){ @@ -59,6 +61,9 @@ public class Schematics implements Loadable{ previews.each((schem, m) -> m.dispose()); previews.clear(); shadowBuffer.dispose(); + if(errorTexture != null){ + errorTexture.dispose(); + } }); Events.on(ContentReloadEvent.class, event -> { @@ -66,6 +71,12 @@ public class Schematics implements Loadable{ previews.clear(); load(); }); + + Events.on(ClientLoadEvent.class, event -> { + Pixmap pixmap = Core.atlas.getPixmap("error").crop(); + errorTexture = new Texture(pixmap); + pixmap.dispose(); + }); } @Override @@ -163,7 +174,15 @@ public class Schematics implements Loadable{ } public Texture getPreview(Schematic schematic){ - return getBuffer(schematic).getTexture(); + if(errored.contains(schematic)) return errorTexture; + + try{ + return getBuffer(schematic).getTexture(); + }catch(Throwable t){ + Log.err(t); + errored.add(schematic); + return errorTexture; + } } public boolean hasPreview(Schematic schematic){ diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 6b98571e7b..27c680bd6a 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -14,6 +14,7 @@ import mindustry.game.Teams.*; import mindustry.gen.*; import mindustry.ui.*; import mindustry.world.*; +import mindustry.world.blocks.power.*; import static arc.Core.camera; import static mindustry.Vars.*; @@ -25,23 +26,18 @@ public class BlockRenderer implements Disposable{ public final FloorRenderer floor = new FloorRenderer(); - private Array requests = new Array<>(true, initialRequests, BlockRequest.class); + private Array requests = new Array<>(false, initialRequests, Tile.class); + private int lastCamX, lastCamY, lastRangeX, lastRangeY; - private int requestidx = 0; - private int iterateidx = 0; private float brokenFade = 0f; - private FrameBuffer shadows = new FrameBuffer(2, 2); - private FrameBuffer fog = new FrameBuffer(2, 2); + private FrameBuffer shadows = new FrameBuffer(); + private FrameBuffer fog = new FrameBuffer(); private Array outArray2 = new Array<>(); private Array shadowEvents = new Array<>(); private boolean displayStatus = false; public BlockRenderer(){ - for(int i = 0; i < requests.size; i++){ - requests.set(i, new BlockRequest()); - } - Events.on(WorldLoadEvent.class, event -> { shadowEvents.clear(); lastCamY = lastCamX = -99; //invalidate camera position so blocks get updated @@ -98,7 +94,7 @@ public class BlockRenderer implements Disposable{ }); } - public void drawFog(){ + public void drawDarkness(){ float ww = world.width() * tilesize, wh = world.height() * tilesize; float x = camera.position.x + tilesize / 2f, y = camera.position.y + tilesize / 2f; float u = (x - camera.width / 2f) / ww, @@ -178,7 +174,6 @@ public class BlockRenderer implements Disposable{ /** Process all blocks to draw. */ public void processBlocks(){ displayStatus = Core.settings.getBool("blockstatus"); - iterateidx = 0; int avgx = (int)(camera.position.x / tilesize); int avgy = (int)(camera.position.y / tilesize); @@ -190,7 +185,7 @@ public class BlockRenderer implements Disposable{ return; } - requestidx = 0; + requests.clear(); int minx = Math.max(avgx - rangex - expandr, 0); int miny = Math.max(avgy - rangey - expandr, 0); @@ -204,29 +199,14 @@ public class BlockRenderer implements Disposable{ Block block = tile.block(); if(block != Blocks.air && tile.isCenter() && block.cacheLayer == CacheLayer.normal){ - if(!expanded){ - addRequest(tile, Layer.block); - } - - if(state.rules.lighting && tile.block().synthetic()){ - addRequest(tile, Layer.lights); - } - if(block.expanded || !expanded){ + requests.add(tile); + } - if(block.layer != null){ - addRequest(tile, block.layer); - } - - if(block.layer2 != null){ - addRequest(tile, block.layer2); - } - - if(tile.entity != null && tile.entity.power() != null && tile.entity.power().links.size > 0){ - for(Tilec other : tile.entity.getPowerConnections(outArray2)){ - if(other.block().layer == Layer.power){ - addRequest(other.tile(), Layer.power); - } + if(tile.entity != null && tile.entity.power() != null && tile.entity.power().links.size > 0){ + for(Tilec other : tile.entity.getPowerConnections(outArray2)){ + if(other.block() instanceof PowerNode){ //TODO need a generic way to render connections! + requests.add(other.tile()); } } } @@ -234,68 +214,44 @@ public class BlockRenderer implements Disposable{ } } - Sort.instance().sort(requests.items, 0, requestidx); - lastCamX = avgx; lastCamY = avgy; lastRangeX = rangex; lastRangeY = rangey; } - public void drawBlocks(Layer stopAt){ - int startIdx = iterateidx; - for(; iterateidx < requestidx; iterateidx++){ - BlockRequest request = requests.get(iterateidx); + public void drawBlocks(){ + drawDestroyed(); - if(request.layer.ordinal() > stopAt.ordinal()){ - break; - } + for(int i = 0; i < requests.size; i++){ + Tile tile = requests.items[i]; + Block block = tile.block(); + Tilec entity = tile.entity; - if(request.layer == Layer.power){ - if(iterateidx - startIdx > 0 && request.tile.pos() == requests.get(iterateidx - 1).tile.pos()){ - continue; + Draw.z(Layer.block); + + if(block != Blocks.air){ + block.drawBase(tile); + + if(entity != null){ + if(entity.damaged()){ + entity.drawCracks(); + } + + if(entity.team() != player.team()){ + entity.drawTeam(); + } + + entity.drawLight(); + + if(displayStatus && block.consumes.any()){ + entity.drawStatus(); + } } } - - Block block = request.tile.block(); - boolean isEnd = (request.layer == Layer.block && block.layer == null) || request.layer == block.layer; - - if(request.layer == Layer.block){ - block.drawBase(request.tile); - if(request.tile.entity != null && request.tile.entity.damaged()){ - request.tile.entity.drawCracks(); - } - if(block.synthetic() && request.tile.entity != null && request.tile.team() != player.team()){ - request.tile.entity.drawTeam(); - } - - }else if(request.layer == Layer.lights && request.tile.entity != null){ - request.tile.entity.drawLight(); - }else if(request.layer == block.layer){ - block.drawLayer(request.tile); - }else if(request.layer == block.layer2){ - block.drawLayer2(request.tile); - } - - if(isEnd && request.tile.entity != null && displayStatus && block.consumes.any()){ - request.tile.entity.drawStatus(); - } } } - private void addRequest(Tile tile, Layer layer){ - if(requestidx >= requests.size){ - requests.add(new BlockRequest()); - } - BlockRequest r = requests.get(requestidx); - if(r == null){ - requests.set(requestidx, r = new BlockRequest()); - } - r.tile = tile; - r.layer = layer; - requestidx++; - } - @Override public void dispose(){ shadows.dispose(); @@ -303,21 +259,4 @@ public class BlockRenderer implements Disposable{ shadows = fog = null; floor.dispose(); } - - private class BlockRequest implements Comparable{ - Tile tile; - Layer layer; - - @Override - public int compareTo(BlockRequest other){ - int compare = layer.compareTo(other.layer); - - return (compare != 0) ? compare : Integer.compare(tile.pos(), other.tile.pos()); - } - - @Override - public String toString(){ - return tile.block().name + ":" + layer.toString(); - } - } } diff --git a/core/src/mindustry/graphics/CacheLayer.java b/core/src/mindustry/graphics/CacheLayer.java index 05be5fc355..ab354acf1f 100644 --- a/core/src/mindustry/graphics/CacheLayer.java +++ b/core/src/mindustry/graphics/CacheLayer.java @@ -1,14 +1,14 @@ package mindustry.graphics; -import arc.Core; -import arc.graphics.Color; -import arc.graphics.g2d.Draw; -import arc.graphics.gl.Shader; +import arc.*; +import arc.graphics.*; +import arc.graphics.g2d.*; +import arc.graphics.gl.*; -import static arc.Core.camera; import static mindustry.Vars.renderer; public enum CacheLayer{ + //TODO water animation breaks when tar/slag is present water{ @Override public void begin(){ @@ -81,7 +81,7 @@ public enum CacheLayer{ renderer.effectBuffer.end(); Draw.shader(shader); - Draw.rect(Draw.wrap(renderer.effectBuffer.getTexture()), camera.position.x, camera.position.y, camera.width, -camera.height); + Draw.rect(renderer.effectBuffer); Draw.shader(); renderer.blocks.floor.beginc(); diff --git a/core/src/mindustry/graphics/Layer.java b/core/src/mindustry/graphics/Layer.java index f731452aa8..8c223113d2 100644 --- a/core/src/mindustry/graphics/Layer.java +++ b/core/src/mindustry/graphics/Layer.java @@ -1,16 +1,69 @@ package mindustry.graphics; -public enum Layer{ - /** Base block layer. */ - block, - /** for placement */ - placement, - /** First overlay. Stuff like conveyor items. */ - overlay, - /** "High" blocks, like turrets. */ - turret, - /** Power lasers. */ - power, - /** Extra layer that's always on top.*/ - lights +/** Stores constants for sorting layers. Values should be stored in increments of 10. */ +public class Layer{ + + public static final float + + //background, which may be planets or an image or nothing at all + background = -10, + + //floor tiles + floor = 0, + + //scorch marks on the floor + scorch = 10, + + //things such as spent casings or rubble + debris = 20, + + //base block layer - most blocks go here + block = 30, + + //things drawn over blocks (intermediate layer) + blockOver = 35, + + //blocks currently in progress *shaders used* TODO perhaps put shaders into their own category + blockBuilding = 40, + + //ground units + groundUnit = 50, + + //turrets + turret = 60, + + //power lines + power = 70, + + //darkness over block clusters + darkness = 80, + + //building plans + plans = 85, + + //flying units + flyingUnit = 90, + + //bullets *bloom begin* + bullet = 100, + + //effects *bloom end* + effect = 110, + + //overlaied UI, like block config guides + overlayUI = 120, + + //weather effects, e.g. rain and snow TODO draw before overlay UI? + weather = 130, + + //light rendering *shaders used* + light = 140, + + //names of players in the game + playerName = 150, + + //space effects, currently only the land and launch effects + space = 160 + + ; } diff --git a/core/src/mindustry/graphics/LightRenderer.java b/core/src/mindustry/graphics/LightRenderer.java index bb2c411ea8..9cef65c8d7 100644 --- a/core/src/mindustry/graphics/LightRenderer.java +++ b/core/src/mindustry/graphics/LightRenderer.java @@ -17,7 +17,7 @@ public class LightRenderer{ private static final int scaling = 4; private float[] vertices = new float[24]; - private FrameBuffer buffer = new FrameBuffer(2, 2); + private FrameBuffer buffer = new FrameBuffer(); private Array lights = new Array<>(); public void add(Runnable run){ @@ -185,9 +185,7 @@ public class LightRenderer{ return; } - if(buffer.getWidth() != Core.graphics.getWidth()/scaling || buffer.getHeight() != Core.graphics.getHeight()/scaling){ - buffer.resize(Core.graphics.getWidth()/scaling, Core.graphics.getHeight()/scaling); - } + buffer.resize(Core.graphics.getWidth()/scaling, Core.graphics.getHeight()/scaling); Draw.color(); buffer.begin(Color.clear); @@ -203,7 +201,7 @@ public class LightRenderer{ Draw.color(); Shaders.light.ambient.set(state.rules.ambientLight); Draw.shader(Shaders.light); - Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height); + Draw.rect(buffer); Draw.shader(); lights.clear(); diff --git a/core/src/mindustry/graphics/Pixelator.java b/core/src/mindustry/graphics/Pixelator.java index 438839f44f..225843c1ae 100644 --- a/core/src/mindustry/graphics/Pixelator.java +++ b/core/src/mindustry/graphics/Pixelator.java @@ -6,13 +6,12 @@ import arc.graphics.Texture.*; import arc.graphics.g2d.*; import arc.graphics.gl.*; import arc.util.*; -import mindustry.gen.*; import static arc.Core.*; import static mindustry.Vars.renderer; public class Pixelator implements Disposable{ - private FrameBuffer buffer = new FrameBuffer(2, 2); + private FrameBuffer buffer = new FrameBuffer(); { buffer.getTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest); @@ -34,19 +33,18 @@ public class Pixelator implements Disposable{ int w = (int)(Core.camera.width * renderer.landScale()); int h = (int)(Core.camera.height * renderer.landScale()); - if(!graphics.isHidden() && (buffer.getWidth() != w || buffer.getHeight() != h)){ - buffer.resize(w, h); - } + buffer.resize(w, h); buffer.begin(); renderer.draw(); buffer.end(); Draw.blend(Blending.disabled); - Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height); + Draw.rect(buffer); Draw.blend(); - Groups.drawNames(); + //TODO set all of this up + //Groups.drawNames(); Core.camera.position.set(px, py); renderer.setScale(pre); diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java index ee72ff212b..2231f6ccfa 100644 --- a/core/src/mindustry/input/Binding.java +++ b/core/src/mindustry/input/Binding.java @@ -7,55 +7,55 @@ import arc.input.InputDevice.DeviceType; import arc.input.KeyCode; public enum Binding implements KeyBind{ - move_x(new Axis(KeyCode.A, KeyCode.D), "general"), - move_y(new Axis(KeyCode.S, KeyCode.W)), - mouse_move(KeyCode.MOUSE_BACK), - dash(KeyCode.SHIFT_LEFT), - control(KeyCode.SHIFT_LEFT), - select(KeyCode.MOUSE_LEFT), - deselect(KeyCode.MOUSE_RIGHT), - break_block(KeyCode.MOUSE_RIGHT), - clear_building(KeyCode.Q), - pause_building(KeyCode.E), - rotate(new Axis(KeyCode.SCROLL)), - rotateplaced(KeyCode.R), - diagonal_placement(KeyCode.CONTROL_LEFT), - pick(KeyCode.MOUSE_MIDDLE), - schematic_select(KeyCode.F), - schematic_flip_x(KeyCode.Z), - schematic_flip_y(KeyCode.X), - schematic_menu(KeyCode.T), - category_prev(KeyCode.COMMA), - category_next(KeyCode.PERIOD), - block_select_left(KeyCode.LEFT), - block_select_right(KeyCode.RIGHT), - block_select_up(KeyCode.UP), - block_select_down(KeyCode.DOWN), - block_select_01(KeyCode.NUM_1), - block_select_02(KeyCode.NUM_2), - block_select_03(KeyCode.NUM_3), - block_select_04(KeyCode.NUM_4), - block_select_05(KeyCode.NUM_5), - block_select_06(KeyCode.NUM_6), - block_select_07(KeyCode.NUM_7), - block_select_08(KeyCode.NUM_8), - block_select_09(KeyCode.NUM_9), - block_select_10(KeyCode.NUM_0), - zoom(new Axis(KeyCode.SCROLL), "view"), - menu(Core.app.getType() == ApplicationType.Android ? KeyCode.BACK : KeyCode.ESCAPE), - fullscreen(KeyCode.F11), - pause(KeyCode.SPACE), - minimap(KeyCode.M), - toggle_menus(KeyCode.C), - screenshot(KeyCode.P), - toggle_power_lines(KeyCode.F5), - toggle_block_status(KeyCode.F6), - player_list(KeyCode.TAB, "multiplayer"), - chat(KeyCode.ENTER), - chat_history_prev(KeyCode.UP), - chat_history_next(KeyCode.DOWN), - chat_scroll(new Axis(KeyCode.SCROLL)), - console(KeyCode.F8), + move_x(new Axis(KeyCode.a, KeyCode.d), "general"), + move_y(new Axis(KeyCode.s, KeyCode.w)), + mouse_move(KeyCode.mouseBack), + dash(KeyCode.shiftLeft), + control(KeyCode.shiftLeft), + select(KeyCode.mouseLeft), + deselect(KeyCode.mouseRight), + break_block(KeyCode.mouseRight), + clear_building(KeyCode.q), + pause_building(KeyCode.e), + rotate(new Axis(KeyCode.scroll)), + rotateplaced(KeyCode.r), + diagonal_placement(KeyCode.controlLeft), + pick(KeyCode.mouseMiddle), + schematic_select(KeyCode.f), + schematic_flip_x(KeyCode.z), + schematic_flip_y(KeyCode.x), + schematic_menu(KeyCode.t), + category_prev(KeyCode.comma), + category_next(KeyCode.period), + block_select_left(KeyCode.left), + block_select_right(KeyCode.right), + block_select_up(KeyCode.up), + block_select_down(KeyCode.down), + block_select_01(KeyCode.num1), + block_select_02(KeyCode.num2), + block_select_03(KeyCode.num3), + block_select_04(KeyCode.num4), + block_select_05(KeyCode.num5), + block_select_06(KeyCode.num6), + block_select_07(KeyCode.num7), + block_select_08(KeyCode.num8), + block_select_09(KeyCode.num9), + block_select_10(KeyCode.num0), + zoom(new Axis(KeyCode.scroll), "view"), + menu(Core.app.getType() == ApplicationType.Android ? KeyCode.back : KeyCode.escape), + fullscreen(KeyCode.f11), + pause(KeyCode.space), + minimap(KeyCode.m), + toggle_menus(KeyCode.c), + screenshot(KeyCode.p), + toggle_power_lines(KeyCode.f5), + toggle_block_status(KeyCode.f6), + player_list(KeyCode.tab, "multiplayer"), + chat(KeyCode.enter), + chat_history_prev(KeyCode.up), + chat_history_next(KeyCode.down), + chat_scroll(new Axis(KeyCode.scroll)), + console(KeyCode.f8), ; private final KeybindValue defaultValue; diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 6a053ced54..1cae16a9af 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -72,7 +72,7 @@ public class DesktopInput extends InputHandler{ Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel); b.row(); b.table(a -> { - a.addImageTextButton("$schematic.add", Icon.save, this::showSchematicSave).colspan(2).size(250f, 50f).disabled(f -> lastSchematic == null || lastSchematic.file != null); + a.button("$schematic.add", Icon.save, this::showSchematicSave).colspan(2).size(250f, 50f).disabled(f -> lastSchematic == null || lastSchematic.file != null); }); }).margin(6f); }); @@ -182,7 +182,7 @@ public class DesktopInput extends InputHandler{ } //TODO this is for debugging, remove later - if(Core.input.keyTap(KeyCode.Q) && !player.dead()){ + if(Core.input.keyTap(KeyCode.q) && !player.dead()){ Fx.commandSend.at(player); Units.nearby(player.team(), player.x(), player.y(), 200f, u -> { if(u.isAI()){ @@ -302,11 +302,11 @@ public class DesktopInput extends InputHandler{ @Override public void buildPlacementUI(Table table){ - table.addImage().color(Pal.gray).height(4f).colspan(4).growX(); + table.image().color(Pal.gray).height(4f).colspan(4).growX(); table.row(); table.left().margin(0f).defaults().size(48f).left(); - table.addImageButton(Icon.paste, Styles.clearPartiali, () -> { + table.button(Icon.paste, Styles.clearPartiali, () -> { ui.schematics.show(); }); } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 50b3c5a89b..373fe2dad3 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -14,7 +14,6 @@ import arc.scene.ui.layout.*; import arc.util.*; import mindustry.*; import mindustry.content.*; -import mindustry.core.GameState.*; import mindustry.entities.*; import mindustry.gen.*; import mindustry.entities.units.*; @@ -175,23 +174,23 @@ public class MobileInput extends InputHandler implements GestureListener{ @Override public void buildPlacementUI(Table table){ - table.addImage().color(Pal.gray).height(4f).colspan(4).growX(); + table.image().color(Pal.gray).height(4f).colspan(4).growX(); table.row(); table.left().margin(0f).defaults().size(48f); - table.addImageButton(Icon.hammer, Styles.clearTogglePartiali, () -> { + table.button(Icon.hammer, Styles.clearTogglePartiali, () -> { mode = mode == breaking ? block == null ? none : placing : breaking; lastBlock = block; }).update(l -> l.setChecked(mode == breaking)).name("breakmode"); //diagonal swap button - table.addImageButton(Icon.diagonal, Styles.clearTogglePartiali, () -> { + table.button(Icon.diagonal, Styles.clearTogglePartiali, () -> { Core.settings.put("swapdiagonal", !Core.settings.getBool("swapdiagonal")); Core.settings.save(); }).update(l -> l.setChecked(Core.settings.getBool("swapdiagonal"))); //rotate button - table.addImageButton(Icon.right, Styles.clearTogglePartiali, () -> { + table.button(Icon.right, Styles.clearTogglePartiali, () -> { if(block != null && block.rotate){ rotation = Mathf.mod(rotation + 1, 4); }else{ @@ -210,7 +209,7 @@ public class MobileInput extends InputHandler implements GestureListener{ }); //confirm button - table.addImageButton(Icon.ok, Styles.clearPartiali, () -> { + table.button(Icon.ok, Styles.clearPartiali, () -> { for(BuildRequest request : selectRequests){ Tile tile = request.tile(); @@ -249,7 +248,7 @@ public class MobileInput extends InputHandler implements GestureListener{ group.fill(t -> { t.bottom().left().visible(() -> (player.builder().isBuilding() || block != null || mode == breaking || !selectRequests.isEmpty()) && !schem.get()); - t.addImageTextButton("$cancel", Icon.cancel, () -> { + t.button("$cancel", Icon.cancel, () -> { player.builder().clearBuilding(); selectRequests.clear(); mode = none; @@ -265,15 +264,15 @@ public class MobileInput extends InputHandler implements GestureListener{ ImageButtonStyle style = Styles.clearPartiali; - b.addImageButton(Icon.save, style, this::showSchematicSave).disabled(f -> lastSchematic == null || lastSchematic.file != null); - b.addImageButton(Icon.cancel, style, () -> { + b.button(Icon.save, style, this::showSchematicSave).disabled(f -> lastSchematic == null || lastSchematic.file != null); + b.button(Icon.cancel, style, () -> { selectRequests.clear(); }); b.row(); - b.addImageButton(Icon.flipX, style, () -> flipRequests(selectRequests, true)); - b.addImageButton(Icon.flipY, style, () -> flipRequests(selectRequests, false)); + b.button(Icon.flipX, style, () -> flipRequests(selectRequests, true)); + b.button(Icon.flipY, style, () -> flipRequests(selectRequests, false)); b.row(); - b.addImageButton(Icon.rotate, style, () -> rotateRequests(selectRequests, 1)); + b.button(Icon.rotate, style, () -> rotateRequests(selectRequests, 1)); }).margin(4f); }); diff --git a/core/src/mindustry/maps/filters/FilterOption.java b/core/src/mindustry/maps/filters/FilterOption.java index bb1b00e57d..5a8a43ee77 100644 --- a/core/src/mindustry/maps/filters/FilterOption.java +++ b/core/src/mindustry/maps/filters/FilterOption.java @@ -63,7 +63,7 @@ public abstract class FilterOption{ table.label(() -> Core.bundle.get("filter.option." + name) + ": " + (int)getter.get()); } table.row(); - Slider slider = table.addSlider(min, max, step, setter).growX().get(); + Slider slider = table.slider(min, max, step, setter).growX().get(); slider.setValue(getter.get()); if(updateEditorOnChange){ slider.changed(changed); @@ -88,7 +88,7 @@ public abstract class FilterOption{ @Override public void build(Table table){ - table.addButton(b -> b.addImage(supplier.get().icon(Cicon.small)).update(i -> ((TextureRegionDrawable)i.getDrawable()) + table.button(b -> b.image(supplier.get().icon(Cicon.small)).update(i -> ((TextureRegionDrawable)i.getDrawable()) .setRegion(supplier.get() == Blocks.air ? Icon.block.getRegion() : supplier.get().icon(Cicon.small))).size(8 * 3), () -> { FloatingDialog dialog = new FloatingDialog(""); dialog.setFillParent(false); @@ -96,7 +96,7 @@ public abstract class FilterOption{ for(Block block : Vars.content.blocks()){ if(!filter.get(block)) continue; - dialog.cont.addImage(block == Blocks.air ? Icon.block.getRegion() : block.icon(Cicon.medium)).size(8 * 4).pad(3).get().clicked(() -> { + dialog.cont.image(block == Blocks.air ? Icon.block.getRegion() : block.icon(Cicon.medium)).size(8 * 4).pad(3).get().clicked(() -> { consumer.get(block); dialog.hide(); changed.run(); diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 1b9d970609..4455c969dd 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -386,7 +386,7 @@ public class Mods implements Loadable{ cont.margin(15); cont.add("$error.title"); cont.row(); - cont.addImage().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); + cont.image().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); cont.row(); cont.add("$mod.errors").wrap().growX().center().get().setAlignment(Align.center); cont.row(); @@ -394,18 +394,18 @@ public class Mods implements Loadable{ mods.each(m -> m.enabled() && m.hasContentErrors(), m -> { p.add(m.name).color(Pal.accent).left(); p.row(); - p.addImage().fillX().pad(4).color(Pal.accent); + p.image().fillX().pad(4).color(Pal.accent); p.row(); p.table(d -> { d.left().marginLeft(15f); for(Content c : m.erroredContent){ d.add(c.minfo.sourceFile.nameWithoutExtension()).left().padRight(10); - d.addImageTextButton("$details", Icon.downOpen, Styles.transt, () -> { + d.button("$details", Icon.downOpen, Styles.transt, () -> { new Dialog(""){{ setFillParent(true); cont.pane(e -> e.add(c.minfo.error)).grow(); cont.row(); - cont.addImageTextButton("$ok", Icon.left, this::hide).size(240f, 60f); + cont.button("$ok", Icon.left, this::hide).size(240f, 60f); }}.show(); }).size(190f, 50f).left().marginLeft(6); d.row(); @@ -416,7 +416,7 @@ public class Mods implements Loadable{ }); cont.row(); - cont.addButton("$ok", this::hide).size(300, 50); + cont.button("$ok", this::hide).size(300, 50); }}.show(); } } diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java index 844464764b..39c80e2370 100644 --- a/core/src/mindustry/net/BeControl.java +++ b/core/src/mindustry/net/BeControl.java @@ -105,7 +105,7 @@ public class BeControl{ }); dialog.cont.add(new Bar(() -> length[0] == 0 ? Core.bundle.get("be.updating") : (int)(progress[0] * length[0]) / 1024/ 1024 + "/" + length[0]/1024/1024 + " MB", () -> Pal.accent, () -> progress[0])).width(400f).height(70f); - dialog.buttons.addImageTextButton("$cancel", Icon.cancel, () -> { + dialog.buttons.button("$cancel", Icon.cancel, () -> { cancel[0] = true; dialog.hide(); }).size(210f, 64f); diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index a5a8de4cc2..b35a73a4ee 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -114,6 +114,27 @@ public class UnitType extends UnlockableContent{ //region drawing + public void draw(Unitc unit){ + if(unit.isFlying()){ + Draw.z(Layer.darkness); + drawShadow(unit); + } + + Draw.z(Mathf.lerp(Layer.groundUnit, Layer.flyingUnit, unit.elevation())); + + if(unit instanceof Legsc){ + drawLegs((Legsc)unit); + } + + drawOcclusion(unit); + drawEngine(unit); + drawBody(unit); + drawWeapons(unit); + if(drawCell) drawCell(unit); + if(drawItems) drawItems(unit); + drawLight(unit); + } + public void drawShadow(Unitc unit){ Draw.color(shadowColor); Draw.rect(region, unit.x() + shadowTX * unit.elevation(), unit.y() + shadowTY * unit.elevation(), unit.rotation() - 90); diff --git a/core/src/mindustry/type/Weather.java b/core/src/mindustry/type/Weather.java index 4dc805e892..98fdefdb63 100644 --- a/core/src/mindustry/type/Weather.java +++ b/core/src/mindustry/type/Weather.java @@ -1,9 +1,11 @@ package mindustry.type; import arc.func.*; +import arc.graphics.g2d.*; import mindustry.annotations.Annotations.*; import mindustry.ctype.*; import mindustry.gen.*; +import mindustry.graphics.*; public abstract class Weather extends MappableContent{ protected float duration = 100f; @@ -39,7 +41,7 @@ public abstract class Weather extends MappableContent{ @EntityDef(value = {Weatherc.class}, pooled = true, isFinal = false) @Component - abstract class WeatherComp implements Posc, DrawLayerWeatherc{ + abstract class WeatherComp implements Posc, Drawc{ Weather weather; void init(Weather weather){ @@ -47,7 +49,8 @@ public abstract class Weather extends MappableContent{ } @Override - public void drawWeather(){ + public void draw(){ + Draw.z(Layer.weather); weather.draw(); } diff --git a/core/src/mindustry/ui/ContentDisplay.java b/core/src/mindustry/ui/ContentDisplay.java index c9a97278ed..23cc36e1ae 100644 --- a/core/src/mindustry/ui/ContentDisplay.java +++ b/core/src/mindustry/ui/ContentDisplay.java @@ -17,13 +17,13 @@ public class ContentDisplay{ table.table(title -> { int size = 8 * 6; - title.addImage(block.icon(Cicon.xlarge)).size(size); + title.image(block.icon(Cicon.xlarge)).size(size); title.add("[accent]" + block.localizedName).padLeft(5); }); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX(); table.row(); @@ -31,7 +31,7 @@ public class ContentDisplay{ table.add(block.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX(); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX(); table.row(); } @@ -65,13 +65,13 @@ public class ContentDisplay{ public static void displayItem(Table table, Item item){ table.table(title -> { - title.addImage(item.icon(Cicon.xlarge)).size(8 * 6); + title.image(item.icon(Cicon.xlarge)).size(8 * 6); title.add("[accent]" + item.localizedName).padLeft(5); }); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); table.row(); @@ -79,7 +79,7 @@ public class ContentDisplay{ table.add(item.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX(); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); table.row(); } @@ -99,13 +99,13 @@ public class ContentDisplay{ public static void displayLiquid(Table table, Liquid liquid){ table.table(title -> { - title.addImage(liquid.icon(Cicon.xlarge)).size(8 * 6); + title.image(liquid.icon(Cicon.xlarge)).size(8 * 6); title.add("[accent]" + liquid.localizedName).padLeft(5); }); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); table.row(); @@ -113,7 +113,7 @@ public class ContentDisplay{ table.add(liquid.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX(); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); table.row(); } @@ -133,13 +133,13 @@ public class ContentDisplay{ public static void displayUnit(Table table, UnitType unit){ table.table(title -> { - title.addImage(unit.icon(Cicon.xlarge)).size(8 * 6); + title.image(unit.icon(Cicon.xlarge)).size(8 * 6); title.add("[accent]" + unit.localizedName).padLeft(5); }); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); table.row(); @@ -147,7 +147,7 @@ public class ContentDisplay{ table.add(unit.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX(); table.row(); - table.addImage().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); + table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX(); table.row(); } diff --git a/core/src/mindustry/ui/ItemsDisplay.java b/core/src/mindustry/ui/ItemsDisplay.java index b22646f390..a18d3e60fa 100644 --- a/core/src/mindustry/ui/ItemsDisplay.java +++ b/core/src/mindustry/ui/ItemsDisplay.java @@ -3,7 +3,6 @@ package mindustry.ui; import arc.graphics.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; -import mindustry.core.GameState.*; import mindustry.gen.*; import mindustry.type.*; @@ -33,14 +32,14 @@ public class ItemsDisplay extends Table{ for(Item item : content.items()){ if(item.type == ItemType.material && data.isUnlocked(item)){ t.label(() -> format(item)).left(); - t.addImage(item.icon(Cicon.small)).size(8 * 3).padLeft(4).padRight(4); + t.image(item.icon(Cicon.small)).size(8 * 3).padLeft(4).padRight(4); t.add(item.localizedName).color(Color.lightGray).left(); t.row(); } } }).get().setScrollingDisabled(true, false), false).setDuration(0.3f); - c.addImageTextButton("$launcheditems", Icon.downOpen, Styles.clearTogglet, col::toggle).update(t -> { + c.button("$launcheditems", Icon.downOpen, Styles.clearTogglet, col::toggle).update(t -> { t.setText(state.isMenu() ? "$launcheditems" : "$launchinfo"); t.setChecked(col.isCollapsed()); ((Image)t.getChildren().get(1)).setDrawable(col.isCollapsed() ? Icon.upOpen : Icon.downOpen); diff --git a/core/src/mindustry/ui/dialogs/AboutDialog.java b/core/src/mindustry/ui/dialogs/AboutDialog.java index 83a5d8e20e..1d803ac049 100644 --- a/core/src/mindustry/ui/dialogs/AboutDialog.java +++ b/core/src/mindustry/ui/dialogs/AboutDialog.java @@ -48,14 +48,14 @@ public class AboutDialog extends FloatingDialog{ Table table = new Table(Tex.underline); table.margin(0); table.table(img -> { - img.addImage().height(h - 5).width(40f).color(link.color); + img.image().height(h - 5).width(40f).color(link.color); img.row(); - img.addImage().height(5).width(40f).color(link.color.cpy().mul(0.8f, 0.8f, 0.8f, 1f)); + img.image().height(5).width(40f).color(link.color.cpy().mul(0.8f, 0.8f, 0.8f, 1f)); }).expandY(); table.table(i -> { i.background(Tex.buttonEdge3); - i.addImage(link.icon); + i.image(link.icon); }).size(h - 5, h); table.table(inset -> { @@ -64,7 +64,7 @@ public class AboutDialog extends FloatingDialog{ inset.labelWrap(link.description).width(w - 100f).color(Color.lightGray).growX(); }).padLeft(8); - table.addImageButton(Icon.link, () -> { + table.button(Icon.link, () -> { if(link.name.equals("wiki")) Events.fire(Trigger.openWiki); if(!Core.net.openURI(link.link)){ @@ -82,7 +82,7 @@ public class AboutDialog extends FloatingDialog{ addCloseButton(); - buttons.addButton("$credits", this::showCredits).size(200f, 64f); + buttons.button("$credits", this::showCredits).size(200f, 64f); if(Core.graphics.isPortrait()){ for(Cell cell : buttons.getCells()){ @@ -98,7 +98,7 @@ public class AboutDialog extends FloatingDialog{ dialog.cont.add("$credits.text").fillX().wrap().get().setAlignment(Align.center); dialog.cont.row(); if(!contributors.isEmpty()){ - dialog.cont.addImage().color(Pal.accent).fillX().height(3f).pad(3f); + dialog.cont.image().color(Pal.accent).fillX().height(3f).pad(3f); dialog.cont.row(); dialog.cont.add("$contributors"); dialog.cont.row(); diff --git a/core/src/mindustry/ui/dialogs/AdminsDialog.java b/core/src/mindustry/ui/dialogs/AdminsDialog.java index 870dc31111..dad00e9967 100644 --- a/core/src/mindustry/ui/dialogs/AdminsDialog.java +++ b/core/src/mindustry/ui/dialogs/AdminsDialog.java @@ -38,7 +38,7 @@ public class AdminsDialog extends FloatingDialog{ res.labelWrap("[LIGHT_GRAY]" + info.lastName).width(w - h - 24f); res.add().growX(); - res.addImageButton(Icon.cancel, () -> { + res.button(Icon.cancel, () -> { ui.showConfirm("$confirm", "$confirmunadmin", () -> { netServer.admins.unAdminPlayer(info.id); Groups.player.each(player -> { diff --git a/core/src/mindustry/ui/dialogs/BansDialog.java b/core/src/mindustry/ui/dialogs/BansDialog.java index 18b9e5b701..790a7aed58 100644 --- a/core/src/mindustry/ui/dialogs/BansDialog.java +++ b/core/src/mindustry/ui/dialogs/BansDialog.java @@ -39,7 +39,7 @@ public class BansDialog extends FloatingDialog{ res.labelWrap("IP: [LIGHT_GRAY]" + info.lastIP + "\n[]Name: [LIGHT_GRAY]" + info.lastName).width(w - h - 24f); res.add().growX(); - res.addImageButton(Icon.cancel, () -> { + res.button(Icon.cancel, () -> { ui.showConfirm("$confirm", "$confirmunban", () -> { netServer.admins.unbanPlayerID(info.id); setup(); diff --git a/core/src/mindustry/ui/dialogs/ColorPicker.java b/core/src/mindustry/ui/dialogs/ColorPicker.java index 0084903ebe..b3745d1a57 100644 --- a/core/src/mindustry/ui/dialogs/ColorPicker.java +++ b/core/src/mindustry/ui/dialogs/ColorPicker.java @@ -38,24 +38,24 @@ public class ColorPicker extends FloatingDialog{ t.defaults().padBottom(4); t.add("R").color(Pal.remove); - t.addSlider(0f, 1f, 0.01f, current.r, current::r).width(w); + t.slider(0f, 1f, 0.01f, current.r, current::r).width(w); t.row(); t.add("G").color(Color.lime); - t.addSlider(0f, 1f, 0.01f, current.g, current::g).width(w); + t.slider(0f, 1f, 0.01f, current.g, current::g).width(w); t.row(); t.add("B").color(Color.royal); - t.addSlider(0f, 1f, 0.01f, current.b, current::b).width(w); + t.slider(0f, 1f, 0.01f, current.b, current::b).width(w); t.row(); if(alpha){ t.add("A"); - t.addSlider(0f, 1f, 0.01f, current.a, current::a).width(w); + t.slider(0f, 1f, 0.01f, current.a, current::a).width(w); t.row(); } }); buttons.clear(); addCloseButton(); - buttons.addImageTextButton("$ok", Icon.ok, () -> { + buttons.button("$ok", Icon.ok, () -> { cons.get(current); hide(); }); diff --git a/core/src/mindustry/ui/dialogs/ControlsDialog.java b/core/src/mindustry/ui/dialogs/ControlsDialog.java index a8ed813e42..265febe18b 100644 --- a/core/src/mindustry/ui/dialogs/ControlsDialog.java +++ b/core/src/mindustry/ui/dialogs/ControlsDialog.java @@ -17,10 +17,10 @@ public class ControlsDialog extends KeybindDialog{ @Override public void addCloseButton(){ - buttons.addImageTextButton("$back", Icon.left, this::hide).size(230f, 64f); + buttons.button("$back", Icon.left, this::hide).size(230f, 64f); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK) + if(key == KeyCode.escape || key == KeyCode.back) hide(); }); } diff --git a/core/src/mindustry/ui/dialogs/CustomGameDialog.java b/core/src/mindustry/ui/dialogs/CustomGameDialog.java index 9b3107820a..1c85aa347c 100644 --- a/core/src/mindustry/ui/dialogs/CustomGameDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomGameDialog.java @@ -62,14 +62,14 @@ public class CustomGameDialog extends FloatingDialog{ for(Gamemode mode : Gamemode.all){ TextureRegionDrawable icon = Vars.ui.getIcon("mode" + Strings.capitalize(mode.name()) + "Small"); if(mode.valid(map) && Core.atlas.isFound(icon.getRegion())){ - t.addImage(icon).size(16f).pad(4f); + t.image(icon).size(16f).pad(4f); } } }).left(); image.row(); image.add(map.name()).pad(1f).growX().wrap().left().get().setEllipsis(true); image.row(); - image.addImage(Tex.whiteui, Pal.gray).growX().pad(3).height(4f); + image.image(Tex.whiteui, Pal.gray).growX().pad(3).height(4f); image.row(); image.add(img).size(images); diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 341368a51c..1cd244bf2b 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -35,12 +35,12 @@ public class CustomRulesDialog extends FloatingDialog{ banDialog.addCloseButton(); banDialog.shown(this::rebuildBanned); - banDialog.buttons.addImageTextButton("$addall", Icon.add, () -> { + banDialog.buttons.button("$addall", Icon.add, () -> { rules.bannedBlocks.addAll(content.blocks().select(Block::isBuildable)); rebuildBanned(); }).size(180, 64f); - banDialog.buttons.addImageTextButton("$clear", Icon.trash, () -> { + banDialog.buttons.button("$clear", Icon.trash, () -> { rules.bannedBlocks.clear(); rebuildBanned(); }).size(180, 64f); @@ -69,10 +69,10 @@ public class CustomRulesDialog extends FloatingDialog{ for(Block block : array){ t.table(Tex.underline, b -> { b.left().margin(4f); - b.addImage(block.icon(Cicon.medium)).size(Cicon.medium.size).padRight(3); + b.image(block.icon(Cicon.medium)).size(Cicon.medium.size).padRight(3); b.add(block.localizedName).color(Color.lightGray).padLeft(3).growX().left().wrap(); - b.addImageButton(Icon.cancel, Styles.clearPartiali, () -> { + b.button(Icon.cancel, Styles.clearPartiali, () -> { rules.bannedBlocks.remove(block); rebuildBanned(); }).size(70f).pad(-4f).padLeft(0f); @@ -84,14 +84,14 @@ public class CustomRulesDialog extends FloatingDialog{ } }).get().setScrollYForce(previousScroll); banDialog.cont.row(); - banDialog.cont.addImageTextButton("$add", Icon.add, () -> { + banDialog.cont.button("$add", Icon.add, () -> { FloatingDialog dialog = new FloatingDialog("$add"); dialog.cont.pane(t -> { t.left().margin(14f); int[] i = {0}; content.blocks().each(b -> !rules.bannedBlocks.contains(b) && b.isBuildable(), b -> { int cols = mobile && Core.graphics.isPortrait() ? 4 : 12; - t.addImageButton(new TextureRegionDrawable(b.icon(Cicon.medium)), Styles.cleari, () -> { + t.button(new TextureRegionDrawable(b.icon(Cicon.medium)), Styles.cleari, () -> { rules.bannedBlocks.add(b); rebuildBanned(); dialog.hide(); @@ -118,7 +118,7 @@ public class CustomRulesDialog extends FloatingDialog{ cont.clear(); cont.pane(m -> main = m).get().setScrollingDisabled(true, false); main.margin(10f); - main.addButton("$settings.reset", () -> { + main.button("$settings.reset", () -> { rules = resetter.get(); setup(); requestKeyboard(); @@ -145,7 +145,7 @@ public class CustomRulesDialog extends FloatingDialog{ number("$rules.deconstructrefundmultiplier", false, f -> rules.deconstructRefundMultiplier = f, () -> rules.deconstructRefundMultiplier, () -> !rules.infiniteResources); number("$rules.blockhealthmultiplier", f -> rules.blockHealthMultiplier = f, () -> rules.blockHealthMultiplier); - main.addButton("$configure", + main.button("$configure", () -> loadoutDialog.show(Blocks.coreShard.itemCapacity, rules.loadout, () -> { rules.loadout.clear(); @@ -154,7 +154,7 @@ public class CustomRulesDialog extends FloatingDialog{ )).left().width(300f); main.row(); - main.addButton("$bannedblocks", banDialog::show).left().width(300f); + main.button("$bannedblocks", banDialog::show).left().width(300f); main.row(); title("$rules.title.player"); @@ -176,7 +176,7 @@ public class CustomRulesDialog extends FloatingDialog{ number("$rules.solarpowermultiplier", f -> rules.solarPowerMultiplier = f, () -> rules.solarPowerMultiplier); check("$rules.lighting", b -> rules.lighting = b, () -> rules.lighting); - main.addButton(b -> { + main.button(b -> { b.left(); b.table(Tex.pane, in -> { in.stack(new Image(Tex.alphaBg), new Image(Tex.whiteui){{ @@ -197,7 +197,7 @@ public class CustomRulesDialog extends FloatingDialog{ t.left(); t.add(text).left().padRight(5) .update(a -> a.setColor(condition.get() ? Color.white : Color.gray)); - Vars.platform.addDialog(t.addField((integer ? (int)prov.get() : prov.get()) + "", s -> cons.get(Strings.parseFloat(s))) + Vars.platform.addDialog(t.field((integer ? (int)prov.get() : prov.get()) + "", s -> cons.get(Strings.parseFloat(s))) .padRight(100f) .update(a -> a.setDisabled(!condition.get())) .valid(Strings::canParsePositiveFloat).width(120f).left().get()); @@ -210,14 +210,14 @@ public class CustomRulesDialog extends FloatingDialog{ } void check(String text, Boolc cons, Boolp prov, Boolp condition){ - main.addCheck(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())).padRight(100f).get().left(); + main.check(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())).padRight(100f).get().left(); main.row(); } void title(String text){ main.add(text).color(Pal.accent).padTop(20).padRight(100f).padBottom(-3); main.row(); - main.addImage().color(Pal.accent).height(3f).padRight(100f).padBottom(20); + main.image().color(Pal.accent).height(3f).padRight(100f).padBottom(20); main.row(); } } diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index e3a44d63e9..0302db9df3 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -9,7 +9,6 @@ import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.util.*; import mindustry.*; -import mindustry.core.GameState.*; import mindustry.ctype.*; import mindustry.ctype.ContentType; import mindustry.gen.*; @@ -46,7 +45,7 @@ public class DatabaseDialog extends FloatingDialog{ table.add("$content." + type.name() + ".name").growX().left().color(Pal.accent); table.row(); - table.addImage().growX().pad(5).padLeft(0).padRight(0).height(3).color(Pal.accent); + table.image().growX().pad(5).padLeft(0).padRight(0).height(3).color(Pal.accent); table.row(); table.table(list -> { list.left(); @@ -69,7 +68,7 @@ public class DatabaseDialog extends FloatingDialog{ if(unlocked(unlock)){ image.clicked(() -> { - if(Core.input.keyDown(KeyCode.SHIFT_LEFT) && Fonts.getUnicode(unlock.name) != 0){ + if(Core.input.keyDown(KeyCode.shiftLeft) && Fonts.getUnicode(unlock.name) != 0){ Core.app.setClipboardText((char)Fonts.getUnicode(unlock.name) + ""); ui.showInfoFade("$copied"); }else{ diff --git a/core/src/mindustry/ui/dialogs/DiscordDialog.java b/core/src/mindustry/ui/dialogs/DiscordDialog.java index 9886736a01..3182cbb927 100644 --- a/core/src/mindustry/ui/dialogs/DiscordDialog.java +++ b/core/src/mindustry/ui/dialogs/DiscordDialog.java @@ -23,14 +23,14 @@ public class DiscordDialog extends Dialog{ t.background(Tex.button).margin(0); t.table(img -> { - img.addImage().height(h - 5).width(40f).color(color); + img.image().height(h - 5).width(40f).color(color); img.row(); - img.addImage().height(5).width(40f).color(color.cpy().mul(0.8f, 0.8f, 0.8f, 1f)); + img.image().height(5).width(40f).color(color.cpy().mul(0.8f, 0.8f, 0.8f, 1f)); }).expandY(); t.table(i -> { i.background(Tex.button); - i.addImage(Icon.discord); + i.image(Icon.discord); }).size(h).left(); t.add("$discord").color(Pal.accent).growX().padLeft(10f); @@ -38,11 +38,11 @@ public class DiscordDialog extends Dialog{ buttons.defaults().size(150f, 50); - buttons.addButton("$back", this::hide); - buttons.addButton("$copylink", () -> { + buttons.button("$back", this::hide); + buttons.button("$copylink", () -> { Core.app.setClipboardText(discordURL); }); - buttons.addButton("$openlink", () -> { + buttons.button("$openlink", () -> { if(!Core.net.openURI(discordURL)){ ui.showErrorMessage("$linkfail"); Core.app.setClipboardText(discordURL); diff --git a/core/src/mindustry/ui/dialogs/FloatingDialog.java b/core/src/mindustry/ui/dialogs/FloatingDialog.java index 37a4c0e312..a9575a18d8 100644 --- a/core/src/mindustry/ui/dialogs/FloatingDialog.java +++ b/core/src/mindustry/ui/dialogs/FloatingDialog.java @@ -20,7 +20,7 @@ public class FloatingDialog extends Dialog{ setFillParent(true); this.title.setAlignment(Align.center); titleTable.row(); - titleTable.addImage(Tex.whiteui, Pal.accent) + titleTable.image(Tex.whiteui, Pal.accent) .growX().height(3f).pad(4f); hidden(() -> { @@ -56,10 +56,10 @@ public class FloatingDialog extends Dialog{ @Override public void addCloseButton(){ buttons.defaults().size(210f, 64f); - buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f, 64f); + buttons.button("$back", Icon.left, this::hide).size(210f, 64f); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ + if(key == KeyCode.escape || key == KeyCode.back){ Core.app.post(this::hide); } }); diff --git a/core/src/mindustry/ui/dialogs/GameOverDialog.java b/core/src/mindustry/ui/dialogs/GameOverDialog.java index 39a324d13d..3a03d43480 100644 --- a/core/src/mindustry/ui/dialogs/GameOverDialog.java +++ b/core/src/mindustry/ui/dialogs/GameOverDialog.java @@ -37,7 +37,7 @@ public class GameOverDialog extends FloatingDialog{ if(state.rules.pvp){ cont.add(Core.bundle.format("gameover.pvp", winner.localized())).pad(6); - buttons.addButton("$menu", () -> { + buttons.button("$menu", () -> { hide(); logic.reset(); }).size(130f, 60f); @@ -71,7 +71,7 @@ public class GameOverDialog extends FloatingDialog{ if(state.stats.itemsDelivered.get(item, 0) > 0){ t.table(items -> { items.add(" [LIGHT_GRAY]" + state.stats.itemsDelivered.get(item, 0)); - items.addImage(item.icon(Cicon.small)).size(8 * 3).pad(4); + items.image(item.icon(Cicon.small)).size(8 * 3).pad(4); }).left(); t.row(); } @@ -86,13 +86,13 @@ public class GameOverDialog extends FloatingDialog{ }).pad(12); if(state.isCampaign()){ - buttons.addButton("$continue", () -> { + buttons.button("$continue", () -> { hide(); logic.reset(); ui.planet.show(); }).size(130f, 60f); }else{ - buttons.addButton("$menu", () -> { + buttons.button("$menu", () -> { hide(); logic.reset(); }).size(130f, 60f); diff --git a/core/src/mindustry/ui/dialogs/HostDialog.java b/core/src/mindustry/ui/dialogs/HostDialog.java index 496ba83fd6..96d0f6e652 100644 --- a/core/src/mindustry/ui/dialogs/HostDialog.java +++ b/core/src/mindustry/ui/dialogs/HostDialog.java @@ -22,14 +22,14 @@ public class HostDialog extends FloatingDialog{ cont.table(t -> { t.add("$name").padRight(10); - t.addField(Core.settings.getString("name"), text -> { + t.field(Core.settings.getString("name"), text -> { player.name(text); Core.settings.put("name", text); Core.settings.save(); ui.listfrag.rebuild(); }).grow().pad(8).get().setMaxLength(40); - ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> { + ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> { new PaletteDialog().show(color -> { player.color().set(color); Core.settings.put("color-0", color.rgba()); @@ -43,7 +43,7 @@ public class HostDialog extends FloatingDialog{ cont.add().width(65f); - cont.addButton("$host", () -> { + cont.button("$host", () -> { if(Core.settings.getString("name").trim().isEmpty()){ ui.showInfo("$noname"); return; @@ -52,7 +52,7 @@ public class HostDialog extends FloatingDialog{ runHost(); }).width(w).height(70f); - cont.addButton("?", () -> ui.showInfo("$host.info")).size(65f, 70f).padLeft(6f); + cont.button("?", () -> ui.showInfo("$host.info")).size(65f, 70f).padLeft(6f); shown(() -> { if(!steam){ diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index ab3fe5c356..899b6a4a7d 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -41,13 +41,13 @@ public class JoinDialog extends FloatingDialog{ buttons.add().growX().width(-1); if(!steam){ - buttons.addButton("?", () -> ui.showInfo("$join.info")).size(60f, 64f).width(-1); + buttons.button("?", () -> ui.showInfo("$join.info")).size(60f, 64f).width(-1); } add = new FloatingDialog("$joingame.title"); add.cont.add("$joingame.ip").padRight(5f).left(); - TextField field = add.cont.addField(Core.settings.getString("ip"), text -> { + TextField field = add.cont.field(Core.settings.getString("ip"), text -> { Core.settings.put("ip", text); Core.settings.save(); }).size(320f, 54f).get(); @@ -56,8 +56,8 @@ public class JoinDialog extends FloatingDialog{ add.cont.row(); add.buttons.defaults().size(140f, 60f).pad(4f); - add.buttons.addButton("$cancel", add::hide); - add.buttons.addButton("$ok", () -> { + add.buttons.button("$cancel", add::hide); + add.buttons.button("$ok", () -> { if(renaming == null){ Server server = new Server(); server.setIP(Core.settings.getString("ip")); @@ -81,7 +81,7 @@ public class JoinDialog extends FloatingDialog{ } }); - keyDown(KeyCode.F5, this::refreshAll); + keyDown(KeyCode.f5, this::refreshAll); shown(() -> { setup(); @@ -111,7 +111,7 @@ public class JoinDialog extends FloatingDialog{ //why are java lambdas this bad TextButton[] buttons = {null}; - TextButton button = buttons[0] = remote.addButton("[accent]" + server.displayIP(), Styles.cleart, () -> { + TextButton button = buttons[0] = remote.button("[accent]" + server.displayIP(), Styles.cleart, () -> { if(!buttons[0].childrenPressed()){ if(server.lastHost != null){ safeConnect(server.ip, server.port, server.lastHost.version); @@ -129,26 +129,26 @@ public class JoinDialog extends FloatingDialog{ inner.add(button.getLabel()).growX(); - inner.addImageButton(Icon.upOpen, Styles.emptyi, () -> { + inner.button(Icon.upOpen, Styles.emptyi, () -> { moveRemote(server, -1); }).margin(3f).padTop(6f).top().right(); - inner.addImageButton(Icon.downOpen, Styles.emptyi, () -> { + inner.button(Icon.downOpen, Styles.emptyi, () -> { moveRemote(server, +1); }).margin(3f).pad(2).padTop(6f).top().right(); - inner.addImageButton(Icon.refresh, Styles.emptyi, () -> { + inner.button(Icon.refresh, Styles.emptyi, () -> { refreshServer(server); }).margin(3f).pad(2).padTop(6f).top().right(); - inner.addImageButton(Icon.pencil, Styles.emptyi, () -> { + inner.button(Icon.pencil, Styles.emptyi, () -> { renaming = server; add.show(); }).margin(3f).pad(2).padTop(6f).top().right(); - inner.addImageButton(Icon.trash, Styles.emptyi, () -> { + inner.button(Icon.trash, Styles.emptyi, () -> { ui.showConfirm("$confirm", "$server.delete", () -> { servers.remove(server, true); saveServers(); @@ -262,7 +262,7 @@ public class JoinDialog extends FloatingDialog{ cont.table(t -> { t.add("$name").padRight(10); if(!steam){ - t.addField(Core.settings.getString("name"), text -> { + t.field(Core.settings.getString("name"), text -> { player.name(text); Core.settings.put("name", text); Core.settings.save(); @@ -271,7 +271,7 @@ public class JoinDialog extends FloatingDialog{ t.add(player.name()).update(l -> l.setColor(player.color())).grow().pad(8); } - ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> { + ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> { new PaletteDialog().show(color -> { player.color().set(color); Core.settings.put("color-0", color.rgba8888()); @@ -283,7 +283,7 @@ public class JoinDialog extends FloatingDialog{ cont.row(); cont.add(pane).width(w + 38).pad(0); cont.row(); - cont.addCenteredImageTextButton("$server.add", Icon.add, () -> { + cont.buttonCenter("$server.add", Icon.add, () -> { renaming = null; add.show(); }).marginLeft(10).width(w).height(80f).update(button -> { @@ -310,13 +310,13 @@ public class JoinDialog extends FloatingDialog{ hosts.table(name -> { name.add(label).pad(10).growX().left().color(Pal.accent); - name.addImageButton(Icon.downOpen, Styles.emptyi, () -> { + name.button(Icon.downOpen, Styles.emptyi, () -> { coll.toggle(false); Core.settings.putSave("collapsed-" + label, coll.isCollapsed()); }).update(i -> i.getStyle().imageUp = (!coll.isCollapsed() ? Icon.upOpen : Icon.downOpen)).size(40f).right().padRight(10f); }).growX(); hosts.row(); - hosts.addImage().growX().pad(5).padLeft(10).padRight(10).height(3).color(Pal.accent); + hosts.image().growX().pad(5).padLeft(10).padRight(10).height(3).color(Pal.accent); hosts.row(); hosts.add(coll).width(targetWidth()); hosts.row(); @@ -350,7 +350,7 @@ public class JoinDialog extends FloatingDialog{ local.background(Tex.button); local.add("$hosts.none").pad(10f); local.add().growX(); - local.addImageButton(Icon.refresh, this::refreshLocal).pad(-12f).padLeft(0).size(70f); + local.button(Icon.refresh, this::refreshLocal).pad(-12f).padLeft(0).size(70f); }else{ local.background(null); } @@ -366,7 +366,7 @@ public class JoinDialog extends FloatingDialog{ local.row(); - TextButton button = local.addButton("", Styles.cleart, () -> safeConnect(host.address, host.port, host.version)) + TextButton button = local.button("", Styles.cleart, () -> safeConnect(host.address, host.port, host.version)) .width(w).pad(5f).get(); button.clearChildren(); buildServer(host, button); @@ -378,7 +378,7 @@ public class JoinDialog extends FloatingDialog{ global.row(); - TextButton button = global.addButton("", Styles.cleart, () -> safeConnect(host.address, host.port, host.version)) + TextButton button = global.button("", Styles.cleart, () -> safeConnect(host.address, host.port, host.version)) .width(w).pad(5f).get(); button.clearChildren(); buildServer(host, button); diff --git a/core/src/mindustry/ui/dialogs/LoadDialog.java b/core/src/mindustry/ui/dialogs/LoadDialog.java index 8765b85f36..60f5ba9583 100644 --- a/core/src/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadDialog.java @@ -70,25 +70,25 @@ public class LoadDialog extends FloatingDialog{ t.right(); t.defaults().size(40f); - t.addImageButton(Icon.save, Styles.emptytogglei, () -> { + t.button(Icon.save, Styles.emptytogglei, () -> { slot.setAutosave(!slot.isAutosave()); }).checked(slot.isAutosave()).right(); - t.addImageButton(Icon.trash, Styles.emptyi, () -> { + t.button(Icon.trash, Styles.emptyi, () -> { ui.showConfirm("$confirm", "$save.delete.confirm", () -> { slot.delete(); setup(); }); }).right(); - t.addImageButton(Icon.pencil, Styles.emptyi, () -> { + t.button(Icon.pencil, Styles.emptyi, () -> { ui.showTextInput("$save.rename", "$save.rename.text", slot.getName(), text -> { slot.setName(text); setup(); }); }).right(); - t.addImageButton(Icon.export, Styles.emptyi, () -> platform.export("save-" + slot.getName(), saveExtension, slot::exportFile)).right(); + t.button(Icon.export, Styles.emptyi, () -> platform.export("save-" + slot.getName(), saveExtension, slot::exportFile)).right(); }).padRight(-10).growX(); }).growX().colspan(2); @@ -142,13 +142,13 @@ public class LoadDialog extends FloatingDialog{ if(!valids){ slots.row(); - slots.addButton("$save.none", () -> { + slots.button("$save.none", () -> { }).disabled(true).fillX().margin(20f).minWidth(340f).height(80f).pad(4f); } slots.row(); - slots.addImageTextButton("$save.import", Icon.add, () -> { + slots.button("$save.import", Icon.add, () -> { platform.showFileChooser(true, saveExtension, file -> { if(SaveIO.isSaveValid(file)){ try{ diff --git a/core/src/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/mindustry/ui/dialogs/LoadoutDialog.java index 27aec170c2..fa7bac9a78 100644 --- a/core/src/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadoutDialog.java @@ -26,7 +26,7 @@ public class LoadoutDialog extends FloatingDialog{ setFillParent(true); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ + if(key == KeyCode.escape || key == KeyCode.back){ Core.app.post(this::hide); } }); @@ -42,9 +42,9 @@ public class LoadoutDialog extends FloatingDialog{ } }); - buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f, 64f); + buttons.button("$back", Icon.left, this::hide).size(210f, 64f); - buttons.addImageTextButton("$settings.reset", Icon.refresh, () -> { + buttons.button("$settings.reset", Icon.refresh, () -> { resetter.run(); reseed(); updater.run(); @@ -73,17 +73,17 @@ public class LoadoutDialog extends FloatingDialog{ for(ItemStack stack : stacks){ items.table(Tex.pane, t -> { t.margin(4).marginRight(8).left(); - t.addButton("-", Styles.cleart, () -> { + t.button("-", Styles.cleart, () -> { stack.amount = Math.max(stack.amount - step(stack.amount), 0); updater.run(); }).size(bsize); - t.addButton("+", Styles.cleart, () -> { + t.button("+", Styles.cleart, () -> { stack.amount = Math.min(stack.amount + step(stack.amount), capacity); updater.run(); }).size(bsize); - t.addImageButton(Icon.pencil, Styles.cleari, () -> ui.showTextInput("$configure", stack.item.localizedName, 10, stack.amount + "", true, str -> { + t.button(Icon.pencil, Styles.cleari, () -> ui.showTextInput("$configure", stack.item.localizedName, 10, stack.amount + "", true, str -> { if(Strings.canParsePostiveInt(str)){ int amount = Strings.parseInt(str); if(amount >= 0 && amount <= capacity){ @@ -95,7 +95,7 @@ public class LoadoutDialog extends FloatingDialog{ ui.showInfo(Core.bundle.format("configure.invalid", capacity)); })).size(bsize); - t.addImage(stack.item.icon(Cicon.small)).size(8 * 3).padRight(4).padLeft(4); + t.image(stack.item.icon(Cicon.small)).size(8 * 3).padRight(4).padLeft(4); t.label(() -> stack.amount + "").left().width(90f); }).pad(2).left().fillX(); diff --git a/core/src/mindustry/ui/dialogs/MapPlayDialog.java b/core/src/mindustry/ui/dialogs/MapPlayDialog.java index 051757655e..1f09e8da21 100644 --- a/core/src/mindustry/ui/dialogs/MapPlayDialog.java +++ b/core/src/mindustry/ui/dialogs/MapPlayDialog.java @@ -56,18 +56,18 @@ public class MapPlayDialog extends FloatingDialog{ for(Gamemode mode : Gamemode.values()){ if(mode.hidden) continue; - modes.addButton(mode.toString(), Styles.togglet, () -> { + modes.button(mode.toString(), Styles.togglet, () -> { selectedGamemode = mode; rules = map.applyRules(mode); }).update(b -> b.setChecked(selectedGamemode == mode)).size(140f, 54f).disabled(!mode.valid(map)); if(i++ % 2 == 1) modes.row(); } selmode.add(modes); - selmode.addButton("?", this::displayGameModeHelp).width(50f).fillY().padLeft(18f); + selmode.button("?", this::displayGameModeHelp).width(50f).fillY().padLeft(18f); cont.add(selmode); cont.row(); - cont.addImageTextButton("$customize", Icon.settings, () -> dialog.show(rules, () -> rules = map.applyRules(selectedGamemode))).width(230); + cont.button("$customize", Icon.settings, () -> dialog.show(rules, () -> rules = map.applyRules(selectedGamemode))).width(230); cont.row(); cont.add(new BorderImage(map.safeTexture(), 3f)).size(mobile && !Core.graphics.isPortrait() ? 150f : 250f).get().setScaling(Scaling.fit); //only maps with survival are valid for high scores @@ -79,7 +79,7 @@ public class MapPlayDialog extends FloatingDialog{ buttons.clearChildren(); addCloseButton(); - buttons.addImageTextButton("$play", Icon.play, () -> { + buttons.button("$play", Icon.play, () -> { control.playMap(map, rules); hide(); ui.custom.hide(); @@ -103,7 +103,7 @@ public class MapPlayDialog extends FloatingDialog{ } d.cont.add(pane); - d.buttons.addButton("$ok", d::hide).size(110, 50).pad(10f); + d.buttons.button("$ok", d::hide).size(110, 50).pad(10f); d.show(); } } diff --git a/core/src/mindustry/ui/dialogs/MapsDialog.java b/core/src/mindustry/ui/dialogs/MapsDialog.java index 151f5de390..bc11e7b882 100644 --- a/core/src/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/mindustry/ui/dialogs/MapsDialog.java @@ -26,7 +26,7 @@ public class MapsDialog extends FloatingDialog{ buttons.remove(); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ + if(key == KeyCode.escape || key == KeyCode.back){ Core.app.post(this::hide); } }); @@ -44,13 +44,13 @@ public class MapsDialog extends FloatingDialog{ buttons.clearChildren(); if(Core.graphics.isPortrait()){ - buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f*2f, 64f).colspan(2); + buttons.button("$back", Icon.left, this::hide).size(210f*2f, 64f).colspan(2); buttons.row(); }else{ - buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f, 64f); + buttons.button("$back", Icon.left, this::hide).size(210f, 64f); } - buttons.addImageTextButton("$editor.newmap", Icon.add, () -> { + buttons.button("$editor.newmap", Icon.add, () -> { ui.showTextInput("$editor.newmap", "$editor.mapname", "", text -> { Runnable show = () -> ui.loadAnd(() -> { hide(); @@ -67,7 +67,7 @@ public class MapsDialog extends FloatingDialog{ }); }).size(210f, 64f); - buttons.addImageTextButton("$editor.importmap", Icon.upload, () -> { + buttons.button("$editor.importmap", Icon.upload, () -> { platform.showFileChooser(true, mapExtension, file -> { ui.loadAnd(() -> { maps.tryCatchMapError(() -> { @@ -134,12 +134,12 @@ public class MapsDialog extends FloatingDialog{ maps.row(); } - TextButton button = maps.addButton("", Styles.cleart, () -> showMapInfo(map)).width(mapsize).pad(8).get(); + TextButton button = maps.button("", Styles.cleart, () -> showMapInfo(map)).width(mapsize).pad(8).get(); button.clearChildren(); button.margin(9); button.add(map.name()).width(mapsize - 18f).center().get().setEllipsis(true); button.row(); - button.addImage().growX().pad(4).color(Pal.gray); + button.image().growX().pad(4).color(Pal.gray); button.row(); button.stack(new Image(map.safeTexture()).setScaling(Scaling.fit), new BorderImage(map.safeTexture()).setScaling(Scaling.fit)).size(mapsize - 20f); button.row(); @@ -192,7 +192,7 @@ public class MapsDialog extends FloatingDialog{ table.row(); - table.addImageTextButton("$editor.openin", Icon.export, () -> { + table.button("$editor.openin", Icon.export, () -> { try{ Vars.ui.editor.beginEditMap(map.file); dialog.hide(); @@ -203,7 +203,7 @@ public class MapsDialog extends FloatingDialog{ } }).fillX().height(54f).marginLeft(10); - table.addImageTextButton(map.workshop && steam ? "$view.workshop" : "$delete", map.workshop && steam ? Icon.link : Icon.trash, () -> { + table.button(map.workshop && steam ? "$view.workshop" : "$delete", map.workshop && steam ? Icon.link : Icon.trash, () -> { if(map.workshop && steam){ platform.viewListing(map); }else{ diff --git a/core/src/mindustry/ui/dialogs/MinimapDialog.java b/core/src/mindustry/ui/dialogs/MinimapDialog.java index c8f0163aac..efa3024316 100644 --- a/core/src/mindustry/ui/dialogs/MinimapDialog.java +++ b/core/src/mindustry/ui/dialogs/MinimapDialog.java @@ -28,7 +28,7 @@ public class MinimapDialog extends FloatingDialog{ cont.clear(); cont.table(Tex.pane,t -> { - t.addRect((x, y, width, height) -> { + t.rect((x, y, width, height) -> { if(renderer.minimap.getRegion() == null) return; Draw.color(Color.white); Draw.alpha(parentAlpha); diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 6641b55ef1..70c9394b37 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -23,7 +23,7 @@ public class ModsDialog extends FloatingDialog{ super("$mods"); addCloseButton(); - buttons.addImageTextButton("$mods.guide", Icon.link, () -> Core.net.openURI(modGuideURL)).size(210, 64f); + buttons.button("$mods.guide", Icon.link, () -> Core.net.openURI(modGuideURL)).size(210, 64f); shown(this::setup); @@ -66,7 +66,7 @@ public class ModsDialog extends FloatingDialog{ TextButtonStyle style = Styles.clearPartialt; float margin = 12f; - buttons.addImageTextButton("$mod.import", Icon.add, style, () -> { + buttons.button("$mod.import", Icon.add, style, () -> { FloatingDialog dialog = new FloatingDialog("$mod.import"); TextButtonStyle bstyle = Styles.cleart; @@ -75,7 +75,7 @@ public class ModsDialog extends FloatingDialog{ t.defaults().size(300f, 70f); t.margin(12f); - t.addImageTextButton("$mod.import.file", Icon.file, bstyle, () -> { + t.button("$mod.import.file", Icon.file, bstyle, () -> { dialog.hide(); platform.showFileChooser(true, "zip", file -> { @@ -91,7 +91,7 @@ public class ModsDialog extends FloatingDialog{ t.row(); - t.addImageTextButton("$mod.import.github", Icon.github, bstyle, () -> { + t.button("$mod.import.github", Icon.github, bstyle, () -> { dialog.hide(); ui.showTextInput("$mod.import.github", "", 64, "Anuken/ExampleMod", text -> { @@ -131,10 +131,10 @@ public class ModsDialog extends FloatingDialog{ dialog.show(); }).margin(margin); - buttons.addImageTextButton("$mods.reload", Icon.refresh, style, this::reload).margin(margin); + buttons.button("$mods.reload", Icon.refresh, style, this::reload).margin(margin); if(!mobile){ - buttons.addImageTextButton("$mods.openfolder", Icon.link, style, () -> Core.app.openFolder(modDirectory.absolutePath())).margin(margin); + buttons.button("$mods.openfolder", Icon.link, style, () -> Core.app.openFolder(modDirectory.absolutePath())).margin(margin); } }).width(w); @@ -151,11 +151,11 @@ public class ModsDialog extends FloatingDialog{ if(!mod.enabled() && !anyDisabled && mods.list().size > 0){ anyDisabled = true; table.row(); - table.addImage().growX().height(4f).pad(6f).color(Pal.gray); + table.image().growX().height(4f).pad(6f).color(Pal.gray); table.row(); } - table.addButton(t -> { + table.button(t -> { t.top().left(); t.margin(12f); @@ -176,26 +176,26 @@ public class ModsDialog extends FloatingDialog{ Fonts.def.draw(letter, x + width/2f, y + height/2f, Align.center); } } - }.border(Pal.accent)).size(h - 8f).padTop(-8f).padLeft(-8f).padRight(6f); + }.border(Pal.accent)).size(h - 8f).padTop(-8f).padLeft(-8f).padRight(2f); t.defaults().left().top(); t.table(title -> { title.left(); - title.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")).growX(); + title.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")).wrap().width(170f).growX(); title.add().growX(); - title.addImageTextButton(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.downOpen : Icon.upOpen, Styles.transt, () -> { + title.button(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.downOpen : Icon.upOpen, Styles.transt, () -> { mods.setEnabled(mod, !mod.enabled()); setup(); }).height(50f).margin(8f).width(130f).disabled(!mod.isSupported()); if(steam && !mod.hasSteamID()){ - title.addImageButton(Icon.download, Styles.clearTransi, () -> { + title.button(Icon.download, Styles.clearTransi, () -> { platform.publish(mod); }).size(50f); } - title.addImageButton(mod.hasSteamID() ? Icon.link : Icon.trash, Styles.clearPartiali, () -> { + title.button(mod.hasSteamID() ? Icon.link : Icon.trash, Styles.clearPartiali, () -> { if(!mod.hasSteamID()){ ui.showConfirm("$confirm", "$mod.remove.confirm", () -> { mods.removeMod(mod); @@ -250,7 +250,7 @@ public class ModsDialog extends FloatingDialog{ dialog.addCloseButton(); if(!mobile){ - dialog.buttons.addImageTextButton("$mods.openfolder", Icon.link, () -> Core.app.openFolder(mod.file.absolutePath())); + dialog.buttons.button("$mods.openfolder", Icon.link, () -> Core.app.openFolder(mod.file.absolutePath())); } //TODO improve this menu later diff --git a/core/src/mindustry/ui/dialogs/PaletteDialog.java b/core/src/mindustry/ui/dialogs/PaletteDialog.java index 5f86276686..6453a2284e 100644 --- a/core/src/mindustry/ui/dialogs/PaletteDialog.java +++ b/core/src/mindustry/ui/dialogs/PaletteDialog.java @@ -25,7 +25,7 @@ public class PaletteDialog extends Dialog{ for(int i = 0; i < playerColors.length; i++){ Color color = playerColors[i]; - ImageButton button = table.addImageButton(Tex.whiteui, Styles.clearTogglei, 34, () -> { + ImageButton button = table.button(Tex.whiteui, Styles.clearTogglei, 34, () -> { cons.get(color); hide(); }).size(48).get(); @@ -38,7 +38,7 @@ public class PaletteDialog extends Dialog{ } keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK) + if(key == KeyCode.escape || key == KeyCode.back) hide(); }); diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index 8c5865851c..0b53d7ca52 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -18,7 +18,7 @@ public class PausedDialog extends FloatingDialog{ shown(this::rebuild); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ + if(key == KeyCode.escape || key == KeyCode.back){ hide(); } }); @@ -37,26 +37,26 @@ public class PausedDialog extends FloatingDialog{ float dw = 220f; cont.defaults().width(dw).height(55).pad(5f); - cont.addImageTextButton("$back", Icon.left, this::hide).colspan(2).width(dw * 2 + 20f); + cont.button("$back", Icon.left, this::hide).colspan(2).width(dw * 2 + 20f); cont.row(); if(state.isCampaign()){ - cont.addImageTextButton("$techtree", Icon.tree, ui.tech::show); + cont.button("$techtree", Icon.tree, ui.tech::show); }else{ - cont.addImageTextButton("$database", Icon.book, ui.database::show); + cont.button("$database", Icon.book, ui.database::show); } - cont.addImageTextButton("$settings", Icon.settings, ui.settings::show); + cont.button("$settings", Icon.settings, ui.settings::show); if(!state.rules.tutorial){ if(!state.isCampaign() && !state.isEditor()){ cont.row(); - cont.addImageTextButton("$savegame", Icon.save, save::show); - cont.addImageTextButton("$loadgame", Icon.upload, load::show).disabled(b -> net.active()); + cont.button("$savegame", Icon.save, save::show); + cont.button("$loadgame", Icon.upload, load::show).disabled(b -> net.active()); } cont.row(); - cont.addImageTextButton("$hostserver", Icon.host, () -> { + cont.button("$hostserver", Icon.host, () -> { if(net.server() && steam){ platform.inviteFriends(); }else{ @@ -71,26 +71,26 @@ public class PausedDialog extends FloatingDialog{ cont.row(); - cont.addImageTextButton("$quit", Icon.exit, this::showQuitConfirm).colspan(2).width(dw + 20f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit")); + cont.button("$quit", Icon.exit, this::showQuitConfirm).colspan(2).width(dw + 20f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit")); }else{ cont.defaults().size(130f).pad(5); - cont.addRowImageTextButton("$back", Icon.play, this::hide); - cont.addRowImageTextButton("$settings", Icon.settings, ui.settings::show); + cont.buttonRow("$back", Icon.play, this::hide); + cont.buttonRow("$settings", Icon.settings, ui.settings::show); if(!state.isCampaign() && !state.isEditor()){ - cont.addRowImageTextButton("$save", Icon.save, save::show); + cont.buttonRow("$save", Icon.save, save::show); cont.row(); - cont.addRowImageTextButton("$load", Icon.download, load::show).disabled(b -> net.active()); + cont.buttonRow("$load", Icon.download, load::show).disabled(b -> net.active()); }else{ cont.row(); } - cont.addRowImageTextButton("$hostserver.mobile", Icon.host, ui.host::show).disabled(b -> net.active()); + cont.buttonRow("$hostserver.mobile", Icon.host, ui.host::show).disabled(b -> net.active()); - cont.addRowImageTextButton("$quit", Icon.exit, this::showQuitConfirm).update(s -> { + cont.buttonRow("$quit", Icon.exit, this::showQuitConfirm).update(s -> { s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit"); s.getLabelCell().growX().wrap(); }); diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 3bc03d1157..d929c27dda 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -92,7 +92,7 @@ public class PlanetDialog extends FloatingDialog{ float bmargin = 6f; //TODO names - buttons.addImageTextButton("$back", Icon.left, style, this::hide).margin(bmargin); + buttons.button("$back", Icon.left, style, this::hide).margin(bmargin); //buttons.addImageTextButton("Tech", Icon.tree, style, () -> ui.tech.show()).margin(bmargin); //buttons.addImageTextButton("Launch", Icon.upOpen, style, this::hide).margin(bmargin); //buttons.addImageTextButton("Database", Icon.book, style, () -> ui.database.show()).margin(bmargin); @@ -163,7 +163,7 @@ public class PlanetDialog extends FloatingDialog{ cont.clear(); titleTable.remove(); - cont.addRect((x, y, w, h) -> render()).grow(); + cont.rect((x, y, w, h) -> render()).grow(); } private void render(){ @@ -341,7 +341,7 @@ public class PlanetDialog extends FloatingDialog{ //TODO add strings to bundle after prototyping is done stable.add("[accent]" + selected.id).row(); - stable.addImage().color(Pal.accent).fillX().height(3f).pad(3f).row(); + stable.image().color(Pal.accent).fillX().height(3f).pad(3f).row(); stable.add(selected.save != null ? selected.save.getPlayTime() : "[lightgray]Unexplored").row(); stable.add("Resources:").row(); @@ -350,14 +350,14 @@ public class PlanetDialog extends FloatingDialog{ int idx = 0; int max = 5; for(UnlockableContent c : selected.data.resources){ - t.addImage(c.icon(Cicon.small)).padRight(3); + t.image(c.icon(Cicon.small)).padRight(3); if(++idx % max == 0) t.row(); } }).fillX().row(); stable.row(); - stable.addButton("Launch", Styles.transt, () -> { + stable.button("Launch", Styles.transt, () -> { if(selected != null){ if(selected.is(SectorAttribute.naval)){ ui.showInfo("You need a naval loadout to launch here."); diff --git a/core/src/mindustry/ui/dialogs/SaveDialog.java b/core/src/mindustry/ui/dialogs/SaveDialog.java index a760256785..b48dd6fe39 100644 --- a/core/src/mindustry/ui/dialogs/SaveDialog.java +++ b/core/src/mindustry/ui/dialogs/SaveDialog.java @@ -3,7 +3,6 @@ package mindustry.ui.dialogs; import arc.Core; import arc.scene.ui.TextButton; import arc.util.Time; -import mindustry.core.GameState.State; import mindustry.game.Saves.SaveSlot; import mindustry.gen.*; @@ -23,7 +22,7 @@ public class SaveDialog extends LoadDialog{ public void addSetup(){ slots.row(); - slots.addImageTextButton("$save.new", Icon.add, () -> + slots.button("$save.new", Icon.add, () -> ui.showTextInput("$save", "$save.newslot", 30, "", text -> { ui.loadAnd("$saving", () -> { control.saves.addSave(text); diff --git a/core/src/mindustry/ui/dialogs/SchematicsDialog.java b/core/src/mindustry/ui/dialogs/SchematicsDialog.java index 660fc0209e..7f31d87094 100644 --- a/core/src/mindustry/ui/dialogs/SchematicsDialog.java +++ b/core/src/mindustry/ui/dialogs/SchematicsDialog.java @@ -31,7 +31,7 @@ public class SchematicsDialog extends FloatingDialog{ shouldPause = true; addCloseButton(); - buttons.addImageTextButton("$schematic.import", Icon.download, this::showImport); + buttons.button("$schematic.import", Icon.download, this::showImport); shown(this::setup); onResize(this::setup); } @@ -45,8 +45,8 @@ public class SchematicsDialog extends FloatingDialog{ cont.table(s -> { s.left(); - s.addImage(Icon.zoom); - s.addField(search, res -> { + s.image(Icon.zoom); + s.field(search, res -> { search = res; rebuildPane[0].run(); }).growX(); @@ -69,7 +69,7 @@ public class SchematicsDialog extends FloatingDialog{ if(!search.isEmpty() && !s.name().toLowerCase().contains(search.toLowerCase())) continue; Button[] sel = {null}; - sel[0] = t.addButton(b -> { + sel[0] = t.button(b -> { b.top(); b.margin(0f); b.table(buttons -> { @@ -78,15 +78,15 @@ public class SchematicsDialog extends FloatingDialog{ ImageButtonStyle style = Styles.clearPartiali; - buttons.addImageButton(Icon.info, style, () -> { + buttons.button(Icon.info, style, () -> { showInfo(s); }); - buttons.addImageButton(Icon.download, style, () -> { + buttons.button(Icon.download, style, () -> { showExport(s); }); - buttons.addImageButton(Icon.pencil, style, () -> { + buttons.button(Icon.pencil, style, () -> { ui.showTextInput("$schematic.rename", "$name", s.name(), res -> { Schematic replacement = schematics.all().find(other -> other.name().equals(res) && other != s); if(replacement != null){ @@ -102,9 +102,9 @@ public class SchematicsDialog extends FloatingDialog{ }); if(s.hasSteamID()){ - buttons.addImageButton(Icon.link, style, () -> platform.viewListing(s)); + buttons.button(Icon.link, style, () -> platform.viewListing(s)); }else{ - buttons.addImageButton(Icon.trash, style, () -> { + buttons.button(Icon.trash, style, () -> { if(s.mod != null){ ui.showInfo(Core.bundle.format("mod.item.remove", s.mod.meta.displayName())); }else{ @@ -160,7 +160,7 @@ public class SchematicsDialog extends FloatingDialog{ TextButtonStyle style = Styles.cleart; t.defaults().size(280f, 60f).left(); t.row(); - t.addImageTextButton("$schematic.copy.import", Icon.copy, style, () -> { + t.button("$schematic.copy.import", Icon.copy, style, () -> { dialog.hide(); try{ Schematic s = Schematics.readBase64(Core.app.getClipboardText()); @@ -174,7 +174,7 @@ public class SchematicsDialog extends FloatingDialog{ } }).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null || !Core.app.getClipboardText().startsWith(schematicBaseStart)); t.row(); - t.addImageTextButton("$schematic.importfile", Icon.download, style, () -> platform.showFileChooser(true, schematicExtension, file -> { + t.button("$schematic.importfile", Icon.download, style, () -> platform.showFileChooser(true, schematicExtension, file -> { dialog.hide(); try{ @@ -189,7 +189,7 @@ public class SchematicsDialog extends FloatingDialog{ })).marginLeft(12f); t.row(); if(steam){ - t.addImageTextButton("$schematic.browseworkshop", Icon.book, style, () -> { + t.button("$schematic.browseworkshop", Icon.book, style, () -> { dialog.hide(); platform.openWorkshop(); }).marginLeft(12f); @@ -209,18 +209,18 @@ public class SchematicsDialog extends FloatingDialog{ TextButtonStyle style = Styles.cleart; t.defaults().size(280f, 60f).left(); if(steam && !s.hasSteamID()){ - t.addImageTextButton("$schematic.shareworkshop", Icon.book, style, + t.button("$schematic.shareworkshop", Icon.book, style, () -> platform.publish(s)).marginLeft(12f); t.row(); dialog.hide(); } - t.addImageTextButton("$schematic.copy", Icon.copy, style, () -> { + t.button("$schematic.copy", Icon.copy, style, () -> { dialog.hide(); ui.showInfoFade("$copied"); Core.app.setClipboardText(schematics.writeBase64(s)); }).marginLeft(12f); t.row(); - t.addImageTextButton("$schematic.exportfile", Icon.export, style, () -> { + t.button("$schematic.exportfile", Icon.export, style, () -> { dialog.hide(); platform.export(s.name(), schematicExtension, file -> Schematics.write(s, file)); }).marginLeft(12f); @@ -312,7 +312,7 @@ public class SchematicsDialog extends FloatingDialog{ cont.table(r -> { int i = 0; for(ItemStack s : arr){ - r.addImage(s.item.icon(Cicon.small)).left(); + r.image(s.item.icon(Cicon.small)).left(); r.label(() -> { Tilec core = player.closestCore(); if(core == null || state.rules.infiniteResources || core.items().has(s.item, s.amount)) return "[lightgray]" + s.amount + ""; diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index 8d48be4422..585b26fe1c 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -84,7 +84,7 @@ public class SettingsMenuDialog extends SettingsDialog{ t.defaults().size(270f, 60f).left(); TextButtonStyle style = Styles.cleart; - t.addImageTextButton("$settings.cleardata", Icon.trash, style, () -> ui.showConfirm("$confirm", "$settings.clearall.confirm", () -> { + t.button("$settings.cleardata", Icon.trash, style, () -> ui.showConfirm("$confirm", "$settings.clearall.confirm", () -> { ObjectMap map = new ObjectMap<>(); for(String value : Core.settings.keys()){ if(value.contains("usid") || value.contains("uuid")){ @@ -104,7 +104,7 @@ public class SettingsMenuDialog extends SettingsDialog{ t.row(); - t.addImageTextButton("$data.export", Icon.download, style, () -> { + t.button("$data.export", Icon.download, style, () -> { if(ios){ Fi file = Core.files.local("mindustry-data-export.zip"); try{ @@ -128,7 +128,7 @@ public class SettingsMenuDialog extends SettingsDialog{ t.row(); - t.addImageTextButton("$data.import", Icon.download, style, () -> ui.showConfirm("$confirm", "$data.import.confirm", () -> platform.showFileChooser(true, "zip", file -> { + t.button("$data.import", Icon.download, style, () -> ui.showConfirm("$confirm", "$data.import.confirm", () -> platform.showFileChooser(true, "zip", file -> { try{ data.importData(file); Core.app.exit(); @@ -146,7 +146,7 @@ public class SettingsMenuDialog extends SettingsDialog{ if(!mobile){ t.row(); - t.addImageTextButton("$data.openfolder", Icon.folder, style, () -> Core.app.openFolder(Core.settings.getDataDirectory().absolutePath())); + t.button("$data.openfolder", Icon.folder, style, () -> Core.app.openFolder(Core.settings.getDataDirectory().absolutePath())); } }); @@ -185,20 +185,20 @@ public class SettingsMenuDialog extends SettingsDialog{ TextButtonStyle style = Styles.cleart; menu.defaults().size(300f, 60f); - menu.addButton("$settings.game", style, () -> visible(0)); + menu.button("$settings.game", style, () -> visible(0)); menu.row(); - menu.addButton("$settings.graphics", style, () -> visible(1)); + menu.button("$settings.graphics", style, () -> visible(1)); menu.row(); - menu.addButton("$settings.sound", style, () -> visible(2)); + menu.button("$settings.sound", style, () -> visible(2)); menu.row(); - menu.addButton("$settings.language", style, ui.language::show); + menu.button("$settings.language", style, ui.language::show); if(!mobile || Core.settings.getBool("keyboard")){ menu.row(); - menu.addButton("$settings.controls", style, ui.controls::show); + menu.button("$settings.controls", style, ui.controls::show); } menu.row(); - menu.addButton("$settings.data", style, () -> dataDialog.show()); + menu.button("$settings.data", style, () -> dataDialog.show()); } void addSettings(){ @@ -256,7 +256,7 @@ public class SettingsMenuDialog extends SettingsDialog{ game.pref(new Setting(){ @Override public void add(SettingsTable table){ - table.addButton("$tutorial.retake", () -> { + table.button("$tutorial.retake", () -> { hide(); control.playTutorial(); }).size(220f, 60f).pad(6).left(); @@ -378,7 +378,7 @@ public class SettingsMenuDialog extends SettingsDialog{ @Override public void addCloseButton(){ - buttons.addImageTextButton("$back", Icon.leftOpen, () -> { + buttons.button("$back", Icon.leftOpen, () -> { if(prefs.getChildren().first() != menu){ back(); }else{ @@ -387,7 +387,7 @@ public class SettingsMenuDialog extends SettingsDialog{ }).size(230f, 64f); keyDown(key -> { - if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ + if(key == KeyCode.escape || key == KeyCode.back){ if(prefs.getChildren().first() != menu){ back(); }else{ diff --git a/core/src/mindustry/ui/dialogs/TechTreeDialog.java b/core/src/mindustry/ui/dialogs/TechTreeDialog.java index 0c942c7647..4a181871d9 100644 --- a/core/src/mindustry/ui/dialogs/TechTreeDialog.java +++ b/core/src/mindustry/ui/dialogs/TechTreeDialog.java @@ -63,7 +63,7 @@ public class TechTreeDialog extends FloatingDialog{ addCloseButton(); - buttons.addImageTextButton("$database", Icon.book, () -> { + buttons.button("$database", Icon.book, () -> { hide(); ui.database.show(); }).size(210f, 64f); @@ -343,7 +343,7 @@ public class TechTreeDialog extends FloatingDialog{ infoTable.table(b -> { b.margin(0).left().defaults().left(); - b.addImageButton(Icon.info, Styles.cleari, () -> ui.content.show(node.block)).growY().width(50f); + b.button(Icon.info, Styles.cleari, () -> ui.content.show(node.block)).growY().width(50f); b.add().grow(); b.table(desc -> { desc.left().defaults().left(); @@ -355,7 +355,7 @@ public class TechTreeDialog extends FloatingDialog{ for(ItemStack req : node.requirements){ t.table(list -> { list.left(); - list.addImage(req.item.icon(Cicon.small)).size(8 * 3).padRight(3); + list.image(req.item.icon(Cicon.small)).size(8 * 3).padRight(3); list.add(req.item.localizedName).color(Color.lightGray); list.label(() -> " " + Math.min(data.getItem(req.item), req.amount) + " / " + req.amount) .update(l -> l.setColor(data.has(req.item, req.amount) ? Color.lightGray : Color.scarlet)); @@ -370,7 +370,7 @@ public class TechTreeDialog extends FloatingDialog{ if(mobile && locked(node)){ b.row(); - b.addImageTextButton("$research", Icon.ok, Styles.nodet, () -> unlock(node)) + b.button("$research", Icon.ok, Styles.nodet, () -> unlock(node)) .disabled(i -> !data.hasItems(node.requirements)).growX().height(44f).colspan(3); } }); diff --git a/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java b/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java index 9b2902f033..b5f0f1e79c 100644 --- a/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java @@ -46,7 +46,7 @@ public class ZoneInfoDialog extends FloatingDialog{ if(i++ % 2 == 0){ iteminfo.row(); } - iteminfo.addImage(stack.item.icon(Cicon.small)).size(8 * 3).padRight(1); + iteminfo.image(stack.item.icon(Cicon.small)).size(8 * 3).padRight(1); iteminfo.add(stack.amount + "").color(Color.lightGray).padRight(5); } }; @@ -55,7 +55,7 @@ public class ZoneInfoDialog extends FloatingDialog{ cont.pane(cont -> { if(zone.locked()){ - cont.addImage(Icon.lock); + cont.image(Icon.lock); cont.row(); cont.add("$locked").padBottom(6); cont.row(); @@ -70,9 +70,9 @@ public class ZoneInfoDialog extends FloatingDialog{ r.add("$complete").colspan(2).left(); r.row(); for(Objective o : zones){ - r.addImage(Icon.terrain).padRight(4); + r.image(Icon.terrain).padRight(4); r.add(o.display()).color(Color.lightGray); - r.addImage(o.complete() ? Icon.ok : Icon.cancel, o.complete() ? Color.lightGray : Color.scarlet).padLeft(3); + r.image(o.complete() ? Icon.ok : Icon.cancel, o.complete() ? Color.lightGray : Color.scarlet).padLeft(3); r.row(); } }); @@ -86,9 +86,9 @@ public class ZoneInfoDialog extends FloatingDialog{ r.add("$research.list").colspan(2).left(); r.row(); for(Unlock blocko : blocks){ - r.addImage(blocko.block.icon(Cicon.small)).size(8 * 3).padRight(5); + r.image(blocko.block.icon(Cicon.small)).size(8 * 3).padRight(5); r.add(blocko.block.localizedName).color(Color.lightGray).left(); - r.addImage(blocko.block.unlocked() ? Icon.ok : Icon.cancel, blocko.block.unlocked() ? Color.lightGray : Color.scarlet).padLeft(3); + r.image(blocko.block.unlocked() ? Icon.ok : Icon.cancel, blocko.block.unlocked() ? Color.lightGray : Color.scarlet).padLeft(3); r.row(); } @@ -99,7 +99,7 @@ public class ZoneInfoDialog extends FloatingDialog{ }else{ cont.add(zone.localizedName).color(Pal.accent).growX().center(); cont.row(); - cont.addImage().color(Pal.accent).height(3).pad(6).growX(); + cont.image().color(Pal.accent).height(3).pad(6).growX(); cont.row(); cont.table(desc -> { desc.left().defaults().left().width(Core.graphics.isPortrait() ? 350f : 500f); @@ -115,7 +115,7 @@ public class ZoneInfoDialog extends FloatingDialog{ t.left(); int i = 0; for(Item item : zone.resources){ - r.addImage(item.icon(Cicon.small)).size(8 * 3); + r.image(item.icon(Cicon.small)).size(8 * 3); if(++i % 4 == 0){ r.row(); } @@ -143,13 +143,13 @@ public class ZoneInfoDialog extends FloatingDialog{ }); cont.row(); - cont.addButton(zone.canConfigure() ? "$configure" : Core.bundle.format("configure.locked", zone.configureObjective.display()), + cont.button(zone.canConfigure() ? "$configure" : Core.bundle.format("configure.locked", zone.configureObjective.display()), () -> loadout.show(zone.loadout.findCore().itemCapacity, zone.getStartingItems(), zone::resetStartingItems, zone::updateLaunchCost, rebuildItems) ).fillX().pad(3).disabled(b -> !zone.canConfigure()); cont.row(); - Button button = cont.addButton(zone.locked() ? "$uncover" : "$launch", () -> { + Button button = cont.button(zone.locked() ? "$uncover" : "$launch", () -> { if(!data.isUnlocked(zone)){ Sounds.unlock.play(); data.unlockContent(zone); diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index 0f838876bb..186ec46121 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -14,7 +14,6 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.annotations.Annotations.*; -import mindustry.core.GameState.*; import mindustry.entities.*; import mindustry.game.EventType.*; import mindustry.gen.*; @@ -27,11 +26,13 @@ import static mindustry.Vars.*; public class BlockInventoryFragment extends Fragment{ private final static float holdWithdraw = 20f; + private final static float holdShrink = 120f; private Table table = new Table(); private Tilec tile; - private float holdTime = 0f; + private float holdTime = 0f, emptyTime; private boolean holding; + private float[] shrinkHoldTimes = new float[content.items().size]; private Item lastItem; { @@ -99,9 +100,15 @@ public class BlockInventoryFragment extends Fragment{ table.touchable(Touchable.enabled); table.update(() -> { - if(state.isMenu() || tile == null || !tile.isValid() || !tile.block().isAccessible() || tile.items().total() == 0){ + if(state.isMenu() || tile == null || !tile.isValid() || !tile.block().isAccessible() || emptyTime >= holdShrink){ hide(); }else{ + if(tile.items().total() == 0){ + emptyTime += Time.delta(); + }else{ + emptyTime = 0f; + } + if(holding && lastItem != null){ holdTime += Time.delta(); @@ -117,12 +124,21 @@ public class BlockInventoryFragment extends Fragment{ updateTablePosition(); if(tile.block().hasItems){ + boolean dirty = false; + if(shrinkHoldTimes.length != content.items().size) shrinkHoldTimes = new float[content.items().size]; + for(int i = 0; i < content.items().size; i++){ boolean has = tile.items().has(content.item(i)); - if(has != container.contains(i)){ - rebuild(false); + boolean had = container.contains(i); + if(has){ + shrinkHoldTimes[i] = 0f; + dirty |= !had; + }else if(had){ + shrinkHoldTimes[i] += Time.delta(); + dirty |= shrinkHoldTimes[i] >= holdShrink; } } + if(dirty) rebuild(false); } } }); diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 89d0e6f6d8..38d9a69c19 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -57,12 +57,12 @@ public class HudFragment extends Fragment{ ImageButtonStyle style = Styles.clearTransi; - select.addImageButton(Icon.menu, style, ui.paused::show); - flip = select.addImageButton(Icon.upOpen, style, this::toggleMenus).get(); + select.button(Icon.menu, style, ui.paused::show); + flip = select.button(Icon.upOpen, style, this::toggleMenus).get(); - select.addImageButton(Icon.paste, style, ui.schematics::show); + select.button(Icon.paste, style, ui.schematics::show); - select.addImageButton(Icon.pause, style, () -> { + select.button(Icon.pause, style, () -> { if(net.active()){ ui.listfrag.toggle(); }else{ @@ -77,7 +77,7 @@ public class HudFragment extends Fragment{ } }); - select.addImageButton(Icon.chat, style,() -> { + select.button(Icon.chat, style,() -> { if(net.active() && mobile){ if(ui.chatfrag.shown()){ ui.chatfrag.hide(); @@ -97,7 +97,7 @@ public class HudFragment extends Fragment{ } }); - select.addImage().color(Pal.gray).width(4f).fillY(); + select.image().color(Pal.gray).width(4f).fillY(); float size = Scl.scl(dsize); Array children = new Array<>(select.getChildren()); @@ -122,7 +122,7 @@ public class HudFragment extends Fragment{ } cont.row(); - cont.addImage().height(4f).color(Pal.gray).fillX(); + cont.image().height(4f).color(Pal.gray).fillX(); cont.row(); } @@ -164,7 +164,7 @@ public class HudFragment extends Fragment{ teams.left(); int i = 0; for(Team team : Team.base()){ - ImageButton button = teams.addImageButton(Tex.whiteui, Styles.clearTogglePartiali, 40f, () -> Call.setPlayerTeamEditor(player, team)) + ImageButton button = teams.button(Tex.whiteui, Styles.clearTogglePartiali, 40f, () -> Call.setPlayerTeamEditor(player, team)) .size(50f).margin(6f).get(); button.getImageCell().grow(); button.getStyle().imageUpColor = team.color; @@ -261,7 +261,7 @@ public class HudFragment extends Fragment{ setDisabled(() -> !control.tutorial.canNext()); }}, new Table(f -> { - f.left().addImageButton(Icon.left, Styles.emptyi, () -> { + f.left().button(Icon.left, Styles.emptyi, () -> { control.tutorial.prevSentence(); }).width(44f).growY().visible(() -> control.tutorial.canPrev()); })); @@ -340,7 +340,7 @@ public class HudFragment extends Fragment{ } }); table.margin(12); - table.addImage(Icon.ok).pad(3); + table.image(Icon.ok).pad(3); table.add(text).wrap().width(280f).get().setAlignment(Align.center, Align.center); table.pack(); @@ -441,7 +441,7 @@ public class HudFragment extends Fragment{ lastUnlockLayout.add(image); }else{ //else, add a specific icon to denote no more space - lastUnlockLayout.addImage(Icon.add); + lastUnlockLayout.image(Icon.add); } lastUnlockLayout.pack(); @@ -486,13 +486,13 @@ public class HudFragment extends Fragment{ dialog.cont.add("$launch.confirm").width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); dialog.buttons.defaults().size(200f, 54f).pad(2f); dialog.setFillParent(false); - dialog.buttons.addButton("$cancel", dialog::hide); - dialog.buttons.addButton("$ok", () -> { + dialog.buttons.button("$cancel", dialog::hide); + dialog.buttons.button("$ok", () -> { dialog.hide(); Call.launchZone(); }); - dialog.keyDown(KeyCode.ESCAPE, dialog::hide); - dialog.keyDown(KeyCode.BACK, dialog::hide); + dialog.keyDown(KeyCode.escape, dialog::hide); + dialog.keyDown(KeyCode.back, dialog::hide); dialog.show(); } @@ -597,7 +597,7 @@ public class HudFragment extends Fragment{ } private void addPlayButton(Table table){ - table.right().addImageButton(Icon.play, Styles.righti, 30f, () -> { + table.right().button(Icon.play, Styles.righti, 30f, () -> { if(net.client() && player.admin()){ Call.onAdminRequest(player, AdminAction.wave); }else if(inLaunchWave()){ diff --git a/core/src/mindustry/ui/fragments/LoadingFragment.java b/core/src/mindustry/ui/fragments/LoadingFragment.java index 6cbbeb35fd..79c1455762 100644 --- a/core/src/mindustry/ui/fragments/LoadingFragment.java +++ b/core/src/mindustry/ui/fragments/LoadingFragment.java @@ -22,16 +22,16 @@ public class LoadingFragment extends Fragment{ t.visible(false); t.touchable(Touchable.enabled); t.add().height(133f).row(); - t.addImage().growX().height(3f).pad(4f).growX().get().setColor(Pal.accent); + t.image().growX().height(3f).pad(4f).growX().get().setColor(Pal.accent); t.row(); t.add("$loading").name("namelabel").pad(10f); t.row(); - t.addImage().growX().height(3f).pad(4f).growX().get().setColor(Pal.accent); + t.image().growX().height(3f).pad(4f).growX().get().setColor(Pal.accent); t.row(); bar = t.add(new Bar()).pad(3).size(500f, 40f).visible(false).get(); t.row(); - button = t.addButton("$cancel", () -> {}).pad(20).size(250f, 70f).visible(false).get(); + button = t.button("$cancel", () -> {}).pad(20).size(250f, 70f).visible(false).get(); table = t; }); } diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java index 6642847ab5..199af74863 100644 --- a/core/src/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/mindustry/ui/fragments/MenuFragment.java @@ -57,10 +57,10 @@ public class MenuFragment extends Fragment{ //info icon if(mobile){ - parent.fill(c -> c.bottom().left().addButton("", Styles.infot, ui.about::show).size(84, 45)); - parent.fill(c -> c.bottom().right().addButton("", Styles.discordt, ui.discord::show).size(84, 45)); + parent.fill(c -> c.bottom().left().button("", Styles.infot, ui.about::show).size(84, 45)); + parent.fill(c -> c.bottom().right().button("", Styles.discordt, ui.discord::show).size(84, 45)); }else if(becontrol.active()){ - parent.fill(c -> c.bottom().right().addImageTextButton("$be.check", Icon.refresh, () -> { + parent.fill(c -> c.bottom().right().button("$be.check", Icon.refresh, () -> { ui.loadfrag.show(); becontrol.checkUpdate(result -> { ui.loadfrag.hide(); @@ -219,7 +219,7 @@ public class MenuFragment extends Fragment{ for(Buttoni b : buttons){ if(b == null) continue; Button[] out = {null}; - out[0] = t.addImageTextButton(b.text, b.icon, Styles.clearToggleMenut, () -> { + out[0] = t.button(b.text, b.icon, Styles.clearToggleMenut, () -> { if(currentMenu == out[0]){ currentMenu = null; fadeOutMenu(); diff --git a/core/src/mindustry/ui/fragments/MinimapFragment.java b/core/src/mindustry/ui/fragments/MinimapFragment.java index 4a5c60a8d1..5405d14959 100644 --- a/core/src/mindustry/ui/fragments/MinimapFragment.java +++ b/core/src/mindustry/ui/fragments/MinimapFragment.java @@ -100,7 +100,7 @@ public class MinimapFragment extends Fragment{ t.row(); t.add().growY(); t.row(); - t.addImageTextButton("$back", Icon.leftOpen, () -> shown = false).size(220f, 60f).pad(10f); + t.button("$back", Icon.leftOpen, () -> shown = false).size(220f, 60f).pad(10f); }); } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index f9fd17d16d..c87b213b51 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -205,9 +205,9 @@ public class PlacementFragment extends Fragment{ blockTable.row(); } - ImageButton button = blockTable.addImageButton(new TextureRegionDrawable(block.icon(Cicon.medium)), Styles.selecti, () -> { + ImageButton button = blockTable.button(new TextureRegionDrawable(block.icon(Cicon.medium)), Styles.selecti, () -> { if(unlocked(block)){ - if(Core.input.keyDown(KeyCode.SHIFT_LEFT) && Fonts.getUnicode(block.name) != 0){ + if(Core.input.keyDown(KeyCode.shiftLeft) && Fonts.getUnicode(block.name) != 0){ Core.app.setClipboardText((char)Fonts.getUnicode(block.name) + ""); ui.showInfoFade("$copied"); }else{ @@ -290,7 +290,7 @@ public class PlacementFragment extends Fragment{ .left().width(190f).padLeft(5); header.add().growX(); if(unlocked(lastDisplay)){ - header.addButton("?", Styles.clearPartialt, () -> { + header.button("?", Styles.clearPartialt, () -> { ui.content.show(lastDisplay); Events.fire(new BlockInfoEvent()); }).size(8 * 5).padTop(-5).padRight(-5).right().grow().name("blockinfo"); @@ -304,7 +304,7 @@ public class PlacementFragment extends Fragment{ for(ItemStack stack : lastDisplay.requirements){ req.table(line -> { line.left(); - line.addImage(stack.item.icon(Cicon.small)).size(8 * 2); + line.image(stack.item.icon(Cicon.small)).size(8 * 2); line.add(stack.item.localizedName).maxWidth(140f).fillX().color(Color.lightGray).padLeft(2).left().get().setEllipsis(true); line.labelWrap(() -> { Tilec core = player.closestCore(); @@ -324,7 +324,7 @@ public class PlacementFragment extends Fragment{ if(state.rules.bannedBlocks.contains(lastDisplay) || !player.isBuilder()){ topTable.row(); topTable.table(b -> { - b.addImage(Icon.cancel).padRight(2).color(Color.scarlet); + b.image(Icon.cancel).padRight(2).color(Color.scarlet); b.add(!player.isBuilder() ? "$unit.nobuild" : "$banned"); b.left(); }).padTop(2).left(); @@ -350,7 +350,7 @@ public class PlacementFragment extends Fragment{ }); }).colspan(3).fillX().visible(() -> getSelected() != null || tileDisplayBlock() != null).touchable(Touchable.enabled); frame.row(); - frame.addImage().color(Pal.gray).colspan(3).height(4).growX(); + frame.image().color(Pal.gray).colspan(3).height(4).growX(); frame.row(); frame.table(Tex.pane2, blocksSelect -> { blocksSelect.margin(4).marginTop(0); @@ -390,11 +390,11 @@ public class PlacementFragment extends Fragment{ if(f++ % 2 == 0) categories.row(); if(categoryEmpty[cat.ordinal()]){ - categories.addImage(Styles.black6); + categories.image(Styles.black6); continue; } - categories.addImageButton(ui.getIcon(cat.name()), Styles.clearToggleTransi, () -> { + categories.button(ui.getIcon(cat.name()), Styles.clearToggleTransi, () -> { currentCategory = cat; if(control.input.block != null){ control.input.block = getSelectedBlock(currentCategory); diff --git a/core/src/mindustry/ui/fragments/PlayerListFragment.java b/core/src/mindustry/ui/fragments/PlayerListFragment.java index 62b009c100..ae320c87d0 100644 --- a/core/src/mindustry/ui/fragments/PlayerListFragment.java +++ b/core/src/mindustry/ui/fragments/PlayerListFragment.java @@ -44,7 +44,7 @@ public class PlayerListFragment extends Fragment{ cont.table(Tex.buttonTrans, pane -> { pane.label(() -> Core.bundle.format(Groups.player.size() == 1 ? "players.single" : "players", Groups.player.size())); pane.row(); - sField = pane.addField(null, text -> { + sField = pane.field(null, text -> { rebuild(); }).grow().pad(8).get(); sField.setMaxLength(maxNameLength); @@ -57,9 +57,9 @@ public class PlayerListFragment extends Fragment{ pane.table(menu -> { menu.defaults().growX().height(50f).fillY(); - menu.addButton("$server.bans", ui.bans::show).disabled(b -> net.client()); - menu.addButton("$server.admins", ui.admins::show).disabled(b -> net.client()); - menu.addButton("$close", this::toggle); + menu.button("$server.bans", ui.bans::show).disabled(b -> net.client()); + menu.button("$server.admins", ui.admins::show).disabled(b -> net.client()); + menu.button("$close", this::toggle); }).margin(0f).pad(10f).growX(); }).touchable(Touchable.enabled).margin(14f); @@ -105,7 +105,7 @@ public class PlayerListFragment extends Fragment{ button.labelWrap("[#" + user.color().toString().toUpperCase() + "]" + user.name()).width(170f).pad(10); button.add().grow(); - button.addImage(Icon.admin).visible(() -> user.admin() && !(!user.isLocal() && net.server())).padRight(5).get().updateVisibility(); + button.image(Icon.admin).visible(() -> user.admin() && !(!user.isLocal() && net.server())).padRight(5).get().updateVisibility(); if((net.server() || player.admin()) && !user.isLocal() && (!user.admin() || net.server())){ button.add().growY(); @@ -115,14 +115,14 @@ public class PlayerListFragment extends Fragment{ button.table(t -> { t.defaults().size(bs); - t.addImageButton(Icon.hammer, Styles.clearPartiali, + t.button(Icon.hammer, Styles.clearPartiali, () -> ui.showConfirm("$confirm", Core.bundle.format("confirmban", user.name()), () -> Call.onAdminRequest(user, AdminAction.ban))); - t.addImageButton(Icon.cancel, Styles.clearPartiali, + t.button(Icon.cancel, Styles.clearPartiali, () -> ui.showConfirm("$confirm", Core.bundle.format("confirmkick", user.name()), () -> Call.onAdminRequest(user, AdminAction.kick))); t.row(); - t.addImageButton(Icon.admin, Styles.clearTogglePartiali, () -> { + t.button(Icon.admin, Styles.clearTogglePartiali, () -> { if(net.client()) return; String id = user.uuid(); @@ -137,19 +137,19 @@ public class PlayerListFragment extends Fragment{ .touchable(() -> net.client() ? Touchable.disabled : Touchable.enabled) .checked(user.admin()); - t.addImageButton(Icon.zoom, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace)); + t.button(Icon.zoom, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace)); }).padRight(12).size(bs + 10f, bs); }else if(!user.isLocal() && !user.admin() && net.client() && Groups.player.size() >= 3 && player.team() == user.team()){ //votekick button.add().growY(); - button.addImageButton(Icon.hammer, Styles.clearPartiali, + button.button(Icon.hammer, Styles.clearPartiali, () -> ui.showConfirm("$confirm", Core.bundle.format("confirmvotekick", user.name()), () -> Call.sendChatMessage("/votekick " + user.name()))).size(h); } content.add(button).padBottom(-6).width(350f).maxHeight(h + 14); content.row(); - content.addImage().height(4f).color(state.rules.pvp ? user.team().color : Pal.gray).growX(); + content.image().height(4f).color(state.rules.pvp ? user.team().color : Pal.gray).growX(); content.row(); }); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index f5ee1aafa8..b46bc5b901 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -90,10 +90,6 @@ public class Block extends UnlockableContent{ public CacheLayer cacheLayer = CacheLayer.normal; /** Special flag; if false, floor will be drawn under this block even if it is cached. */ public boolean fillsTile = true; - /** Layer to draw extra stuff on. */ - public Layer layer = null; - /** Extra layer to draw extra extra stuff on. */ - public Layer layer2 = null; /** whether this block can be replaced in all cases */ public boolean alwaysReplace = false; /** The block group. Unless {@link #canReplace} is overriden, blocks in the same group can replace each other. */ @@ -204,14 +200,6 @@ public class Block extends UnlockableContent{ return sum / size / size; } - public void drawLayer(Tile tile){ - if(tile.entity != null) tile.entity.drawLayer(); - } - - public void drawLayer2(Tile tile){ - if(tile.entity != null) tile.entity.drawLayer2(); - } - /** Drawn when you are placing a block. */ public void drawPlace(int x, int y, int rotation, boolean valid){ } diff --git a/core/src/mindustry/world/blocks/BuildBlock.java b/core/src/mindustry/world/blocks/BuildBlock.java index 278b1b49fb..64352eb073 100644 --- a/core/src/mindustry/world/blocks/BuildBlock.java +++ b/core/src/mindustry/world/blocks/BuildBlock.java @@ -36,7 +36,6 @@ public class BuildBlock extends Block{ this.size = size; update = true; health = 20; - layer = Layer.placement; consumesTap = true; solidifes = true; buildBlocks[size - 1] = this; @@ -180,23 +179,22 @@ public class BuildBlock extends Block{ if(Core.atlas.isFound(previous.icon(Cicon.full))){ Draw.rect(previous.icon(Cicon.full), x, y, previous.rotate ? tile.rotation() * 90 : 0); } - } - @Override - public void drawLayer(){ - Shaders.blockbuild.color = Pal.accent; + Draw.draw(Layer.blockBuilding, () -> { + Shaders.blockbuild.color = Pal.accent; - Block target = cblock == null ? previous : cblock; + Block target = cblock == null ? previous : cblock; - if(target == null) return; + if(target != null){ + for(TextureRegion region : target.getGeneratedIcons()){ + Shaders.blockbuild.region = region; + Shaders.blockbuild.progress = progress; - for(TextureRegion region : target.getGeneratedIcons()){ - Shaders.blockbuild.region = region; - Shaders.blockbuild.progress = progress; - - Draw.rect(region, x, y, target.rotate ? tile.rotation() * 90 : 0); - Draw.flush(); - } + Draw.rect(region, x, y, target.rotate ? tile.rotation() * 90 : 0); + Draw.flush(); + } + } + }); } public boolean construct(Unitc builder, @Nullable Tilec core, float amount, boolean configured){ diff --git a/core/src/mindustry/world/blocks/ItemSelection.java b/core/src/mindustry/world/blocks/ItemSelection.java index 31929e7ad7..0e2376eb47 100644 --- a/core/src/mindustry/world/blocks/ItemSelection.java +++ b/core/src/mindustry/world/blocks/ItemSelection.java @@ -26,7 +26,7 @@ public class ItemSelection{ for(T item : items){ if(!data.isUnlocked(item) && state.isCampaign()) continue; - ImageButton button = cont.addImageButton(Tex.whiteui, Styles.clearToggleTransi, 24, () -> control.input.frag.config.hideConfig()).group(group).get(); + ImageButton button = cont.button(Tex.whiteui, Styles.clearToggleTransi, 24, () -> control.input.frag.config.hideConfig()).group(group).get(); button.changed(() -> consumer.get(button.isChecked() ? item : null)); button.getStyle().imageUp = new TextureRegionDrawable(item.icon(Cicon.small)); button.update(() -> button.setChecked(holder.get() == item)); @@ -40,7 +40,7 @@ public class ItemSelection{ if(i % 4 != 0){ int remaining = 4 - (i % 4); for(int j = 0; j < remaining; j++){ - cont.addImage(Styles.black6); + cont.image(Styles.black6); } } diff --git a/core/src/mindustry/world/blocks/defense/ShockMine.java b/core/src/mindustry/world/blocks/defense/ShockMine.java index d2fe426c25..9c2714925c 100644 --- a/core/src/mindustry/world/blocks/defense/ShockMine.java +++ b/core/src/mindustry/world/blocks/defense/ShockMine.java @@ -22,21 +22,11 @@ public class ShockMine extends Block{ destructible = true; solid = false; targetable = false; - layer = Layer.overlay; rebuildable = false; } public class ShockMineEntity extends TileEntity{ - @Override - public void drawLayer(){ - super.draw(); - Draw.color(team.color); - Draw.alpha(0.22f); - Fill.rect(x, y, 2f, 2f); - Draw.color(); - } - @Override public void drawTeam(){ //no @@ -44,7 +34,11 @@ public class ShockMine extends Block{ @Override public void draw(){ - //nope + super.draw(); + Draw.color(team.color); + Draw.alpha(0.22f); + Fill.rect(x, y, 2f, 2f); + Draw.color(); } @Override diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index f9285e86e6..4175bc994e 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -50,8 +50,8 @@ public class LiquidTurret extends Turret{ public class LiquidTurretEntity extends TurretEntity{ @Override - public void drawLayer(){ - super.drawLayer(); + public void draw(){ + super.draw(); if(Core.atlas.isFound(reg(liquidRegion))){ Draw.color(liquids.current().color); diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index a5ceee4e05..96a3f6300f 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -68,7 +68,6 @@ public abstract class Turret extends Block{ priority = TargetPriority.turret; update = true; solid = true; - layer = Layer.turret; group = BlockGroup.turrets; flags = EnumSet.of(BlockFlag.turret); outlineIcon = true; @@ -127,10 +126,9 @@ public abstract class Turret extends Block{ public void draw(){ Draw.rect(baseRegion, x, y); Draw.color(); - } - @Override - public void drawLayer(){ + Draw.z(Layer.turret); + tr2.trns(rotation, -recoil); drawer.get(this); diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index 27909c96bc..e530a1cf9e 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -10,8 +10,8 @@ import arc.util.ArcAnnotate.*; import arc.util.*; import arc.util.io.*; import mindustry.content.*; -import mindustry.gen.*; import mindustry.entities.units.*; +import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; import mindustry.ui.*; @@ -36,7 +36,6 @@ public class Conveyor extends Block implements Autotiler{ super(name); rotate = true; update = true; - layer = Layer.overlay; group = BlockGroup.transportation; hasItems = true; itemCapacity = 4; @@ -129,6 +128,19 @@ public class Conveyor extends Block implements Autotiler{ int frame = clogHeat <= 0.5f ? (int)(((Time.time() * speed * 8f * timeScale())) % 4) : 0; Draw.rect(regions[Mathf.clamp(blendbits, 0, regions.length - 1)][Mathf.clamp(frame, 0, regions[0].length - 1)], x, y, tilesize * blendsclx, tilesize * blendscly, rotation * 90); + + //TODO is clustering necessary? does it create garbage? + Draw.z(Layer.blockOver); + + for(int i = 0; i < len; i++){ + Item item = ids[i]; + tr1.trns(rotation * 90, tilesize, 0); + tr2.trns(rotation * 90, -tilesize / 2f, xs[i] * tilesize / 2f); + + Draw.rect(item.icon(Cicon.medium), + (tile.x * tilesize + tr1.x * ys[i] + tr2.x), + (tile.y * tilesize + tr1.y * ys[i] + tr2.y), itemSize, itemSize); + } } @Override @@ -152,21 +164,6 @@ public class Conveyor extends Block implements Autotiler{ } } - @Override - public void drawLayer(){ - byte rotation = tile.rotation(); - - for(int i = 0; i < len; i++){ - Item item = ids[i]; - tr1.trns(rotation * 90, tilesize, 0); - tr2.trns(rotation * 90, -tilesize / 2f, xs[i] * tilesize / 2f); - - Draw.rect(item.icon(Cicon.medium), - (tile.x * tilesize + tr1.x * ys[i] + tr2.x), - (tile.y * tilesize + tr1.y * ys[i] + tr2.y), itemSize, itemSize); - } - } - @Override public void unitOn(Unitc unit){ if(clogHeat > 0.5f){ diff --git a/core/src/mindustry/world/blocks/distribution/CraterConveyor.java b/core/src/mindustry/world/blocks/distribution/CraterConveyor.java index eddfb2d583..84a1c63c51 100644 --- a/core/src/mindustry/world/blocks/distribution/CraterConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/CraterConveyor.java @@ -29,7 +29,6 @@ public class CraterConveyor extends Block implements Autotiler{ rotate = true; update = true; - layer = Layer.overlay; group = BlockGroup.transportation; hasItems = true; itemCapacity = 8; @@ -87,13 +86,32 @@ public class CraterConveyor extends Block implements Autotiler{ @Override public void draw(){ - draw(blendbit1); - if(blendbit2 == 0) return; - draw(blendbit2); - } + Draw.rect(regions[Mathf.clamp(blendbit1, 0, regions.length - 1)], x, y, tilesize * blendsclx, tilesize * blendscly, rotation() * 90); + if(blendbit2 != 0) Draw.rect(regions[Mathf.clamp(blendbit2, 0, regions.length - 1)], x, y, tilesize * blendsclx, tilesize * blendscly, rotation() * 90);; - private void draw(int bit){ - Draw.rect(regions[Mathf.clamp(bit, 0, regions.length - 1)], x, y, tilesize * blendsclx, tilesize * blendscly, rotation() * 90); + Draw.z(Layer.blockOver); + + if(link == -1) return; + + // offset + Tile from = world.tile(link); + Tmp.v1.set(from); + Tmp.v2.set(tile); + Tmp.v1.interpolate(Tmp.v2, 1f - cooldown, Interpolation.linear); + + // fixme + float a = (from.rotation()%4) * 90; + float b = (tile.rotation()%4) * 90; + if((from.rotation()%4) == 3 && (tile.rotation()%4) == 0) a = -1 * 90; + if((from.rotation()%4) == 0 && (tile.rotation()%4) == 3) a = 4 * 90; + + // crater + Draw.rect(regions[7], Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interpolation.smooth.apply(1f - Mathf.clamp(cooldown * 2, 0f, 1f)))); + + // item + float size = itemSize * Mathf.lerp(Math.min((float)items.total() / itemCapacity, 1), 1f, 0.4f); + Drawf.shadow(Tmp.v1.x, Tmp.v1.y, size * 1.2f); + Draw.rect(items.first().icon(Cicon.medium), Tmp.v1.x, Tmp.v1.y, size, size, 0); } @Override @@ -157,31 +175,6 @@ public class CraterConveyor extends Block implements Autotiler{ } } - @Override - public void drawLayer(){ - if(link == -1) return; - - // offset - Tile from = world.tile(link); - Tmp.v1.set(from); - Tmp.v2.set(tile); - Tmp.v1.interpolate(Tmp.v2, 1f - cooldown, Interpolation.linear); - - // fixme - float a = (from.rotation()%4) * 90; - float b = (tile.rotation()%4) * 90; - if((from.rotation()%4) == 3 && (tile.rotation()%4) == 0) a = -1 * 90; - if((from.rotation()%4) == 0 && (tile.rotation()%4) == 3) a = 4 * 90; - - // crater - Draw.rect(regions[7], Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interpolation.smooth.apply(1f - Mathf.clamp(cooldown * 2, 0f, 1f)))); - - // item - float size = itemSize * Mathf.lerp(Math.min((float)items.total() / itemCapacity, 1), 1f, 0.4f); - Drawf.shadow(Tmp.v1.x, Tmp.v1.y, size * 1.2f); - Draw.rect(items.first().icon(Cicon.medium), Tmp.v1.x, Tmp.v1.y, size, size, 0); - } - @Override public int getMaximumAccepted(Item item){ return Mathf.round(super.getMaximumAccepted(item) * timeScale); // increased item capacity while boosted diff --git a/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java b/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java index 4e89218604..dfa40c76b1 100644 --- a/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java @@ -4,6 +4,7 @@ import arc.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; +import mindustry.graphics.*; import mindustry.world.*; import static mindustry.Vars.*; @@ -17,7 +18,11 @@ public class ExtendingItemBridge extends ItemBridge{ public class ExtendingItemBridgeEntity extends ItemBridgeEntity{ @Override - public void drawLayer(){ + public void draw(){ + super.draw(); + + Draw.z(Layer.power); + Tile other = world.tile(link); if(!linkValid(tile, other)) return; diff --git a/core/src/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/mindustry/world/blocks/distribution/ItemBridge.java index 26f3728028..c8786d1d47 100644 --- a/core/src/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/ItemBridge.java @@ -32,7 +32,6 @@ public class ItemBridge extends Block{ update = true; solid = true; hasPower = true; - layer = Layer.power; expanded = true; itemCapacity = 10; configurable = true; @@ -230,7 +229,11 @@ public class ItemBridge extends Block{ } @Override - public void drawLayer(){ + public void draw(){ + super.draw(); + + Draw.z(Layer.power); + Tile other = world.tile(link); if(!linkValid(tile, other)) return; diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 1bded3cd96..6c4429819d 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -37,10 +37,9 @@ public class MassDriver extends Block{ solid = true; configurable = true; hasItems = true; - layer = Layer.turret; hasPower = true; outlineIcon = true; - //point2 is relative + //point2 is relative config(Point2.class, (tile, point) -> ((MassDriverEntity)tile).link = Point2.pack(point.x + tile.tileX(), point.y + tile.tileY())); config(Integer.class, (tile, point) -> ((MassDriverEntity)tile).link = point); } @@ -187,10 +186,9 @@ public class MassDriver extends Block{ @Override public void draw(){ Draw.rect(baseRegion, x, y); - } - @Override - public void drawLayer(){ + Draw.z(Layer.turret); + Draw.rect(region, x + Angles.trnsx(rotation + 180f, reload * knockback), y + Angles.trnsy(rotation + 180f, reload * knockback), rotation - 90); diff --git a/core/src/mindustry/world/blocks/distribution/MassConveyor.java b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java similarity index 94% rename from core/src/mindustry/world/blocks/distribution/MassConveyor.java rename to core/src/mindustry/world/blocks/distribution/PayloadConveyor.java index 1afb2acec7..ff4318adc7 100644 --- a/core/src/mindustry/world/blocks/distribution/MassConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java @@ -17,15 +17,14 @@ import mindustry.world.blocks.payloads.*; import static mindustry.Vars.*; //TODO rename -public class MassConveyor extends Block{ +public class PayloadConveyor extends Block{ public float moveTime = 70f; public TextureRegion topRegion, edgeRegion; public Interpolation interp = Interpolation.pow5; - public MassConveyor(String name){ + public PayloadConveyor(String name){ super(name); - layer = Layer.overlay; size = 3; rotate = true; update = true; @@ -57,7 +56,7 @@ public class MassConveyor extends Block{ } } - public class MassConveyorEntity extends TileEntity{ + public class PayloadConveyorEntity extends TileEntity{ public @Nullable Payload item; public float progress, itemRotation, animation; public @Nullable Tilec next; @@ -87,7 +86,7 @@ public class MassConveyor extends Block{ progress = Time.time() % moveTime; //TODO DEBUG - if(Core.input.keyTap(KeyCode.G) && world.entWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y) == this){ + if(Core.input.keyTap(KeyCode.g) && world.entWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y) == this){ item = new UnitPayload((Mathf.chance(0.5) ? UnitTypes.wraith : UnitTypes.dagger).create(Team.sharded)); itemRotation = rotation() * 90; animation = 0f; @@ -161,14 +160,8 @@ public class MassConveyor extends Block{ Draw.rect(edgeRegion, x, y, i * 90); } } - } - @Override - public void drawLayer(){ - //fract: - //0: arriving - //0.5: middle - //1: leaving + Draw.z(Layer.blockOver); if(animation > fract()){ animation = Mathf.lerp(animation, 0.8f, 0.15f); @@ -177,7 +170,7 @@ public class MassConveyor extends Block{ animation = Math.max(animation, fract()); float fract = animation; - float rot = Mathf.slerp(itemRotation, rotation() * 90, fract); + rot = Mathf.slerp(itemRotation, rotation() * 90, fract); if(fract < 0.5f){ Tmp.v1.trns(itemRotation + 180, (0.5f - fract) * tilesize * size); diff --git a/core/src/mindustry/world/blocks/environment/TreeBlock.java b/core/src/mindustry/world/blocks/environment/TreeBlock.java index fe90e449a0..afc367270f 100644 --- a/core/src/mindustry/world/blocks/environment/TreeBlock.java +++ b/core/src/mindustry/world/blocks/environment/TreeBlock.java @@ -11,15 +11,12 @@ public class TreeBlock extends Block{ public TreeBlock(String name){ super(name); solid = true; - layer = Layer.power; expanded = true; } @Override - public void drawBase(Tile tile){} - - @Override - public void drawLayer(Tile tile){ + public void drawBase(Tile tile){ + Draw.z(Layer.power + 1); Draw.rect(region, tile.worldx(), tile.worldy(), Mathf.randomSeed(tile.pos(), 0, 4) * 90); } } diff --git a/core/src/mindustry/world/blocks/experimental/BlockForge.java b/core/src/mindustry/world/blocks/experimental/BlockForge.java index 0134c86ed2..8047507415 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockForge.java +++ b/core/src/mindustry/world/blocks/experimental/BlockForge.java @@ -102,24 +102,26 @@ public class BlockForge extends Block{ } if(recipe != null){ - TextureRegion region = recipe.icon(Cicon.full); + Draw.draw(Layer.blockOver, () -> { + TextureRegion region = recipe.icon(Cicon.full); - Shaders.build.region = region; - Shaders.build.progress = progress / recipe.buildCost; - Shaders.build.color.set(Pal.accent); - Shaders.build.color.a = heat; - Shaders.build.time = -time / 20f; + Shaders.build.region = region; + Shaders.build.progress = progress / recipe.buildCost; + Shaders.build.color.set(Pal.accent); + Shaders.build.color.a = heat; + Shaders.build.time = -time / 20f; - Draw.shader(Shaders.build); - Draw.rect(region, x, y); - Draw.shader(); + Draw.shader(Shaders.build); + Draw.rect(region, x, y); + Draw.shader(); - Draw.color(Pal.accent); - Draw.alpha(heat); + Draw.color(Pal.accent); + Draw.alpha(heat); - Lines.lineAngleCenter(x + Mathf.sin(time, 20f, Vars.tilesize / 2f * size - 2f), y, 90, size * Vars.tilesize - 4f); + Lines.lineAngleCenter(x + Mathf.sin(time, 20f, Vars.tilesize / 2f * size - 2f), y, 90, size * Vars.tilesize - 4f); - Draw.reset(); + Draw.reset(); + }); } } diff --git a/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java b/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java index 91ac7acce0..4fbd663263 100644 --- a/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java +++ b/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java @@ -2,9 +2,8 @@ package mindustry.world.blocks.legacy; import arc.util.io.*; import mindustry.gen.*; -import mindustry.world.*; -public class LegacyCommandCenter extends Block{ +public class LegacyCommandCenter extends LegacyBlock{ public LegacyCommandCenter(String name){ super(name); diff --git a/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java b/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java index 88049a1832..8befde6940 100644 --- a/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java +++ b/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java @@ -2,9 +2,8 @@ package mindustry.world.blocks.legacy; import arc.util.io.*; import mindustry.gen.*; -import mindustry.world.*; -public class LegacyUnitFactory extends Block{ +public class LegacyUnitFactory extends LegacyBlock{ public LegacyUnitFactory(String name){ super(name); diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index 9444743251..84692e61fb 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -87,7 +87,7 @@ public class MessageBlock extends Block{ @Override public void buildConfiguration(Table table){ - table.addImageButton(Icon.pencil, () -> { + table.button(Icon.pencil, () -> { if(mobile){ Core.input.getTextInput(new TextInput(){{ text = message; @@ -112,7 +112,7 @@ public class MessageBlock extends Block{ return true; }); a.setMaxLength(maxTextLength); - dialog.buttons.addButton("$ok", () -> { + dialog.buttons.button("$ok", () -> { tile.configure(a.getText()); dialog.hide(); }).size(130f, 60f); diff --git a/core/src/mindustry/world/blocks/power/LightBlock.java b/core/src/mindustry/world/blocks/power/LightBlock.java index 3e623a6ade..edeac22920 100644 --- a/core/src/mindustry/world/blocks/power/LightBlock.java +++ b/core/src/mindustry/world/blocks/power/LightBlock.java @@ -49,7 +49,7 @@ public class LightBlock extends Block{ @Override public void buildConfiguration(Table table){ - table.addImageButton(Icon.pencil, () -> { + table.button(Icon.pencil, () -> { ui.picker.show(Tmp.c1.set(color).a(0.5f), false, res -> { color = res.rgba(); lastColor = color; diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 1d394fe54e..59fdb42d15 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -33,7 +33,6 @@ public class PowerNode extends PowerBlock{ public PowerNode(String name){ super(name); expanded = true; - layer = Layer.power; configurable = true; consumesPower = false; outputsPower = false; @@ -372,10 +371,12 @@ public class PowerNode extends PowerBlock{ } @Override - public void drawLayer(){ + public void draw(){ + super.draw(); + if(Core.settings.getInt("lasersopacity") == 0) return; - Tilec entity = tile.ent(); + Draw.z(Layer.power); for(int i = 0; i < power.links.size; i++){ Tilec link = world.ent(power.links.get(i)); diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java index 805743d2a8..12cb1fa3f9 100644 --- a/core/src/mindustry/world/blocks/production/Drill.java +++ b/core/src/mindustry/world/blocks/production/Drill.java @@ -57,7 +57,6 @@ public class Drill extends Block{ super(name); update = true; solid = true; - layer = Layer.overlay; group = BlockGroup.drills; hasLiquids = true; liquidCapacity = 5f; @@ -139,7 +138,7 @@ public class Drill extends Block{ for(int i = 0; i < list.size; i++){ Block item = list.get(i); - l.addImage(item.icon(Cicon.small)).size(8 * 3).padRight(2).padLeft(2).padTop(3).padBottom(3); + l.image(item.icon(Cicon.small)).size(8 * 3).padRight(2).padLeft(2).padTop(3).padBottom(3); l.add(item.localizedName).left().padLeft(1).padRight(4); if(i % 5 == 4){ l.row(); diff --git a/core/src/mindustry/world/blocks/production/Pump.java b/core/src/mindustry/world/blocks/production/Pump.java index f8a7f0f0f8..625b1c5861 100644 --- a/core/src/mindustry/world/blocks/production/Pump.java +++ b/core/src/mindustry/world/blocks/production/Pump.java @@ -3,7 +3,6 @@ package mindustry.world.blocks.production; import arc.*; import arc.graphics.*; import arc.graphics.g2d.*; -import mindustry.graphics.*; import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; @@ -20,7 +19,6 @@ public class Pump extends LiquidBlock{ public Pump(String name){ super(name); - layer = Layer.overlay; group = BlockGroup.liquids; floating = true; } diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index f8aa13e2c9..c18e3bb364 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -31,7 +31,6 @@ public class CoreBlock extends StorageBlock{ flags = EnumSet.of(BlockFlag.core, BlockFlag.producer); activeSound = Sounds.respawning; activeSoundVolume = 1f; - layer = Layer.overlay; } @Remote(called = Loc.server) @@ -194,9 +193,13 @@ public class CoreBlock extends StorageBlock{ } @Override - public void drawLayer(){ + public void draw(){ + super.draw(); + if(heat > 0.001f){ - Drawf.drawRespawn(this, heat, progress, time, unitType, lastRequested); + Draw.draw(Layer.blockOver, () -> { + Drawf.drawRespawn(this, heat, progress, time, unitType, lastRequested); + }); } } diff --git a/core/src/mindustry/world/blocks/units/CommandCenter.java b/core/src/mindustry/world/blocks/units/CommandCenter.java index f3e24a5927..7cd29d6026 100644 --- a/core/src/mindustry/world/blocks/units/CommandCenter.java +++ b/core/src/mindustry/world/blocks/units/CommandCenter.java @@ -84,7 +84,7 @@ public class CommandCenter extends Block{ Table buttons = new Table(); for(UnitCommand cmd : UnitCommand.all){ - buttons.addImageButton(commandRegions[cmd.ordinal()], Styles.clearToggleTransi, () -> tile.configure(cmd.ordinal())) + buttons.button(commandRegions[cmd.ordinal()], Styles.clearToggleTransi, () -> tile.configure(cmd.ordinal())) .size(44).group(group).update(b -> b.setChecked(command == cmd)); } table.add(buttons); diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index e74fcd8b67..93cd7466a9 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -31,8 +31,6 @@ public class RepairPoint extends Block{ update = true; solid = true; flags = EnumSet.of(BlockFlag.repair); - layer = Layer.turret; - layer2 = Layer.power; hasPower = true; outlineIcon = true; } @@ -75,17 +73,12 @@ public class RepairPoint extends Block{ @Override public void draw(){ Draw.rect(baseRegion, x, y); - } - @Override - public void drawLayer(){ + Draw.z(Layer.turret); Draw.rect(region, x, y, rotation - 90); - } - @Override - public void drawLayer2(){ - if(target != null && - Angles.angleDist(angleTo(target), rotation) < 30f){ + if(target != null && Angles.angleDist(angleTo(target), rotation) < 30f){ + Draw.z(Layer.power); float ang = angleTo(target); float len = 5f; diff --git a/core/src/mindustry/world/meta/values/AmmoListValue.java b/core/src/mindustry/world/meta/values/AmmoListValue.java index 3819be4e48..f1e1c81635 100644 --- a/core/src/mindustry/world/meta/values/AmmoListValue.java +++ b/core/src/mindustry/world/meta/values/AmmoListValue.java @@ -28,7 +28,7 @@ public class AmmoListValue implements StatValue{ table.row(); for(T t : map.keys()){ BulletType type = map.get(t); - table.addImage(icon(t)).size(3 * 8).padRight(4).right().top(); + table.image(icon(t)).size(3 * 8).padRight(4).right().top(); table.add(t.localizedName).padRight(10).left().top(); table.table(Tex.underline, bt -> { bt.left().defaults().padRight(3).left(); diff --git a/core/src/mindustry/world/meta/values/BoosterListValue.java b/core/src/mindustry/world/meta/values/BoosterListValue.java index 40d0b21d13..54fac60f03 100644 --- a/core/src/mindustry/world/meta/values/BoosterListValue.java +++ b/core/src/mindustry/world/meta/values/BoosterListValue.java @@ -32,7 +32,7 @@ public class BoosterListValue implements StatValue{ for(Liquid liquid : content.liquids()){ if(!filter.get(liquid)) continue; - c.addImage(liquid.icon(Cicon.medium)).size(3 * 8).padRight(4).right().top(); + c.image(liquid.icon(Cicon.medium)).size(3 * 8).padRight(4).right().top(); c.add(liquid.localizedName).padRight(10).left().top(); c.table(Tex.underline, bt -> { bt.left().defaults().padRight(3).left(); diff --git a/desktop/src/mindustry/desktop/steam/SWorkshop.java b/desktop/src/mindustry/desktop/steam/SWorkshop.java index 92de0fec07..ddfd2f8b88 100644 --- a/desktop/src/mindustry/desktop/steam/SWorkshop.java +++ b/desktop/src/mindustry/desktop/steam/SWorkshop.java @@ -101,20 +101,20 @@ public class SWorkshop implements SteamUGCCallback{ dialog.cont.add("$workshop.menu").pad(20f); dialog.addCloseButton(); - dialog.buttons.addImageTextButton("$view.workshop", Icon.link, () -> { + dialog.buttons.button("$view.workshop", Icon.link, () -> { viewListingID(id); dialog.hide(); }).size(210f, 64f); - dialog.buttons.addImageTextButton("$workshop.update", Icon.up, () -> { + dialog.buttons.button("$workshop.update", Icon.up, () -> { new FloatingDialog("$workshop.update"){{ setFillParent(false); cont.margin(10).add("$changelog").padRight(6f); cont.row(); - TextArea field = cont.addArea("", t -> {}).size(500f, 160f).get(); + TextArea field = cont.area("", t -> {}).size(500f, 160f).get(); field.setMaxLength(400); buttons.defaults().size(120, 54).pad(4); - buttons.addButton("$ok", () -> { + buttons.button("$ok", () -> { if(!p.prePublish()){ Log.info("Rejecting due to pre-publish."); return; @@ -125,7 +125,7 @@ public class SWorkshop implements SteamUGCCallback{ dialog.hide(); hide(); }); - buttons.addButton("$cancel", this::hide); + buttons.button("$cancel", this::hide); }}.show(); }).size(210f, 64f); @@ -181,11 +181,11 @@ public class SWorkshop implements SteamUGCCallback{ dialog.setFillParent(false); dialog.cont.add("$publish.confirm").width(600f).wrap(); dialog.addCloseButton(); - dialog.buttons.addImageTextButton("$eula", Icon.link, + dialog.buttons.button("$eula", Icon.link, () -> SVars.net.friends.activateGameOverlayToWebPage("https://steamcommunity.com/sharedfiles/workshoplegalagreement")) .size(210f, 64f); - dialog.buttons.addImageTextButton("$ok", Icon.ok, () -> { + dialog.buttons.button("$ok", Icon.ok, () -> { Log.info("Accepted, publishing item..."); itemHandlers.add(published); ugc.createItem(SVars.steamID, WorkshopFileType.Community); diff --git a/fastlane/metadata/android/uk/summary.txt b/fastlane/metadata/android/uk/summary.txt index fea6ef13fa..d9a469925c 100644 --- a/fastlane/metadata/android/uk/summary.txt +++ b/fastlane/metadata/android/uk/summary.txt @@ -1 +1 @@ -Виробнича пісочниця у жанрі «захист башт» (англ. — Tower Defence, TD). +Виробнича пісочниця у жанрі «баштовий захист» (англ. — Tower Defence, TD). diff --git a/gradle.properties b/gradle.properties index 3b502bad4e..5c6fdbdabf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=b47ef8107460bacd15f90e805b60ad826ead16f1 +archash=29e322768aa47aa4b4c796ae998766b769da224b diff --git a/tests/src/test/java/power/DirectConsumerTests.java b/tests/src/test/java/power/DirectConsumerTests.java index cf52c5887a..36770cd951 100644 --- a/tests/src/test/java/power/DirectConsumerTests.java +++ b/tests/src/test/java/power/DirectConsumerTests.java @@ -1,19 +1,9 @@ package power; -import mindustry.content.Items; -import mindustry.content.UnitTypes; -import mindustry.type.ItemStack; -import mindustry.world.Tile; -import mindustry.world.blocks.power.PowerGenerator; -import mindustry.world.blocks.power.PowerGraph; -import mindustry.world.blocks.units.UnitFactory; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; - /** Tests for direct power consumers. */ public class DirectConsumerTests extends PowerTestFixture{ - + //TODO reimplement +/* @Test void noPowerRequestedWithNoItems(){ testUnitFactory(0, 0, 0.08f, 0.08f, 1f); @@ -52,5 +42,5 @@ public class DirectConsumerTests extends PowerTestFixture{ graph.update(); assertEquals(expectedSatisfaction, consumerTile.entity.power().status); - } + }*/ }