Latest Posts

Topic: Verbesserungsvorschlag : Flaggen über init.lua definieren

Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 219
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-11-29, 20:57

Das ist jetzt nichts kurz und mittelfristiges aber was langfristiges :

Ursprünglich wollte ich mit diesen Vorschlag nur erreichen das man mit einer Erweiterung
die Waren Kapazität einer Stammes Flagge ändern kann . Falls es jetzt schon möglich ist , wo kann man das ändern ? units.lua ?

Aber dann ist mir noch eingefallen wenn man eine Flagge wie die anderen Einheiten auch per init.lua definieren kann ,
dann kann man das auch gleich nutzen um einer Flagge weitere kurze Animationen zu geben , zum Beispiel eine 1-Sekündige Aufbau/Abbau-Animation mit Sound .

push_textdomain("tribes")
local dirname=path.dirname(__file__)
wl.Descriptions():new_flag_type
{
    name="romans_flag",
    descname=pgettext("Flagge"),
    animation_directory=dirname,
    icon=dirname.."menu.png",
    capacity=10,
    spritesheets=
    {
        construction=
        {
            -- player.input.add_flag
            fps=30,
            frames=30,
            rows=3,
            columns=10,
            directional=true,
            hotspot={0,0}
        },
        idle=
        {
            fps=30,
            frames=60,
            rows=6,
            columns=10,
            directional=true,
            hotspot={0,0}
        },
        dismantle=
        {
            -- player.input.remove_flag
            fps=30,
            frames=30,
            rows=3,
            columns=10,
            directional=true,
            hotspot={0,0}
        },
        destroy_start=
        {
            -- burning start
            -- game.input.point_occupied_by_enemy
            fps=30,
            frames=30,
            rows=3,
            columns=10,
            directional=true,
            hotspot={0,0}
        },
        destroy=
        {
            -- burning
            fps=30,
            frames=60,
            rows=6,
            columns=10,
            directional=true,
            hotspot={0,0}
        },
        destroy_end=
        {
            -- burning end
            fps=30,
            frames=30,
            rows=3,
            columns=10,
            directional=true,
            hotspot={0,0}
        }
    },
    programs=
    {
        main=
        {
            "animate=idle"
        },
        add_flag=
        {
            "playsound=build... 20%"
            "animate=construction duration:1s"
        },
        remove_flag=
        {
            "playsound=remove... 20%"
            "animate=dismantle duration:1s"
        },
        destroy_flag=
        {
            "animate=destroy_start duration:1s",
            "playsound=burn... 20%",
            "animate=destroy duration:5s",
            "playsound=remove... 20%",
            "animate=destroy_end duration:1s"
        }
    }
}
pop_textdomain()
Edited: 2024-11-29, 21:03

Das Imperium schlägt zurück ! TY

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2053
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2024-11-29, 21:45

Die Fahne in Widelands ist eine besondere Einheit, die einzigartig ist und nicht über Lua definiert wird. D.h. es gibt nur eine globale FlagDescription, die in C++ definiert ist und von allen Völkern verwendet wird; und diese globale Fahne hat keine eigenen Graphiken, sondern jedes Volk hat seinen eigenen Satz Fahnengraphiken, die zusammen mit den Graphiken für Grenzen, Straßen u.ä. in der units.lua des Volks definiert werden.

Die Warenkapazität von 8 ist hardgecodet; theoretisch könnte man Lua-Bindungs implementieren, um einer bestimmten Fahne eine andere Kapazität zu geben, und auch, dass bei der Initialisierung nicht 8 sondern ein volkesspezifischer Wert verwendet wird. Das könnte man alles als Good First Issue in C++ in Angriff nehmen.

Eine Aufbau- oder Abriss-Animation dürfte nicht zu machen sein, da das Konzept einer »Fahne-die-keine-ganz-normale-Fahne-ist« eine unüberschaubare Lawine von Codeänderungen nach sich ziehen würde.

Edited: 2024-11-29, 21:46

Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 219
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-11-29, 22:05

Mit dieser Antwort hatte ich schon in etwa gerechnet .
Ist auch nur was langfristiges aber ich wollte die Idee zumindest mal kundtun bevor Sie später wieder untergeht und in Vergessenheit gerät .


Das Imperium schlägt zurück ! TY

Top Quote