Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2026-07-06 17:41:37 -04:00
2 changed files with 23 additions and 3 deletions
+2 -2
View File
@@ -61,7 +61,7 @@ mods.browser.sortstars = Legjobbra értékeltek
export.file = Exportálás fájlba
import.file = Importálás fájlból
copy.clipboard = Másolás a vágólapra
import.clipboard = Importálás a vágólapról
import.clipboard = Betöltés a vágólapról
workshop.browse = Browse Workshop
workshop.share = Megosztás a Steam Műhelyben
@@ -562,7 +562,7 @@ asset.content.badname = [red]Érvénytelen név! A legtöbb szimbólum nem enged
asset.content.import.file = Fájl importálása
asset.content.import.clipboard = Importálás a vágólapról
asset.exists = Már létezik egy ilyen típusú, azonos útvonalú/nevű összetevő:\n[lightgray]{0}
asset.exists.audio = A sound/music asset with that name is already loaded:\n[lightgray]{0}
asset.exists.audio = Egy ilyen nevű hang- vagy zeneösszetevő már be lett töltve:\n[lightgray]{0}
asset.broken = Nem található ez az összetevőfájl.\nEzt az adatok helytelen importálása vagy egy hibásan exportált mentés okozhatja.
asset.audio.invalid = Nem sikerült betölteni a hangfájlt.\nGyőződj meg arról, hogy érvényes OGG- vagy MP3-fájlt adtál meg.
asset.delete.confirm = Biztosan törölni szeretnéd ezt az összetevőt?
@@ -259,6 +259,7 @@ public class LogicBlock extends Block{
public LExecutor executor = new LExecutor();
public float accumulator = 0;
public Seq<LogicLink> links = new Seq<>();
public @Nullable ObjectIntMap<String> linkMap;
public boolean checkedDuplicates = false;
//dynamic only for privileged processors
public int ipt = instructionsPerTick;
@@ -363,6 +364,7 @@ public class LogicBlock extends Block{
}
public void updateCode(String str, boolean keep, Cons<LAssembler> assemble){
linkMap = null;
if(str != null){
code = str;
@@ -606,14 +608,32 @@ public class LogicBlock extends Block{
if(position.isobj && position.objval instanceof String varName){
LVar ret = executor.optionalVar(varName);
if(ret == null){
output.setnum(Double.NaN);
output.setobj(optionalLink(varName));
return;
}
if(output.constant) return;
output.set(ret);
}else{
int index = position.numi();
output.setobj(index >= 0 && index < executor.links.length ? executor.links[index] : null);
}
}
private @Nullable Building optionalLink(String name){
// Quick check the name can even be a link to avoid building/using the map needlessly
char ch = name.charAt(name.length() - 1);
if(ch < '0' || ch > '9') return null;
if(linkMap == null){
linkMap = new ObjectIntMap<>();
for(int i = 0; i < links.size; i++){
linkMap.put(links.get(i).name, i);
}
}
int index = linkMap.get(name, -1);
return index >= 0 && index < links.size && links.get(index).valid ? links.get(index).lastBuild : null;
}
@Override
public boolean writable(LExecutor exec){
return readable(exec);