Teayo
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 219
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
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
Top
Quote
|
Nordfriese
Joined: 2017-01-17, 18:07
Posts: 2054
OS: Debian Testing
Version: Latest master
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
|