mindustry logic execution, map- and schematic- parsing and rendering
| -rw-r--r-- | res/team_names.txt | 1 | ||||
| -rw-r--r-- | src/team.rs | 43 |
2 files changed, 23 insertions, 21 deletions
diff --git a/res/team_names.txt b/res/team_names.txt new file mode 100644 index 0000000..37adee8 --- /dev/null +++ b/res/team_names.txt @@ -0,0 +1 @@ +team#6|team#7|team#8|team#9|team#10|team#11|team#12|team#13|team#14|team#15|team#16|team#17|team#18|team#19|team#20|team#21|team#22|team#23|team#24|team#25|team#26|team#27|team#28|team#29|team#30|team#31|team#32|team#33|team#34|team#35|team#36|team#37|team#38|team#39|team#40|team#41|team#42|team#43|team#44|team#45|team#46|team#47|team#48|team#49|team#50|team#51|team#52|team#53|team#54|team#55|team#56|team#57|team#58|team#59|team#60|team#61|team#62|team#63|team#64|team#65|team#66|team#67|team#68|team#69|team#70|team#71|team#72|team#73|team#74|team#75|team#76|team#77|team#78|team#79|team#80|team#81|team#82|team#83|team#84|team#85|team#86|team#87|team#88|team#89|team#90|team#91|team#92|team#93|team#94|team#95|team#96|team#97|team#98|team#99|team#100|team#101|team#102|team#103|team#104|team#105|team#106|team#107|team#108|team#109|team#110|team#111|team#112|team#113|team#114|team#115|team#116|team#117|team#118|team#119|team#120|team#121|team#122|team#123|team#124|team#125|team#126|team#127|team#128|team#129|team#130|team#131|team#132|team#133|team#134|team#135|team#136|team#137|team#138|team#139|team#140|team#141|team#142|team#143|team#144|team#145|team#146|team#147|team#148|team#149|team#150|team#151|team#152|team#153|team#154|team#155|team#156|team#157|team#158|team#159|team#160|team#161|team#162|team#163|team#164|team#165|team#166|team#167|team#168|team#169|team#170|team#171|team#172|team#173|team#174|team#175|team#176|team#177|team#178|team#179|team#180|team#181|team#182|team#183|team#184|team#185|team#186|team#187|team#188|team#189|team#190|team#191|team#192|team#193|team#194|team#195|team#196|team#197|team#198|team#199|team#200|team#201|team#202|team#203|team#204|team#205|team#206|team#207|team#208|team#209|team#210|team#211|team#212|team#213|team#214|team#215|team#216|team#217|team#218|team#219|team#220|team#221|team#222|team#223|team#224|team#225|team#226|team#227|team#228|team#229|team#230|team#231|team#232|team#233|team#234|team#235|team#236|team#237|team#238|team#239|team#240|team#241|team#242|team#243|team#244|team#245|team#246|team#247|team#248|team#249|team#250|team#251|team#252|team#253|team#254|team#255 diff --git a/src/team.rs b/src/team.rs index 457eac9..cb79d2a 100644 --- a/src/team.rs +++ b/src/team.rs @@ -12,29 +12,10 @@ impl Team Self(id) } - pub fn get_id(&self) -> u8 - { - self.0 - } - pub fn is_base(&self) -> bool { self.0 < 6 } - - pub fn get_name(&self) -> Option<&'static str> - { - match self.0 - { - 0 => Some("derelict"), - 1 => Some("sharded"), - 2 => Some("crux"), - 3 => Some("malis"), - 4 => Some("green"), - 5 => Some("blue"), - _ => None, - } - } } impl From<u8> for Team @@ -92,6 +73,8 @@ impl fmt::Display for Team } } +const TEAM_NAMES: &str = include_str!("../res/team_names.txt"); + impl Content for Team { fn get_type(&self) -> Type @@ -104,7 +87,7 @@ impl Content for Team self.0 as u16 } - fn get_name(&self) -> &str + fn get_name(&self) -> &'static str { match self.0 { @@ -114,7 +97,25 @@ impl Content for Team 3 => "malis", 4 => "green", 5 => "blue", - _ => "<custom>", // TODO + // dark magic: offsets manually computed, then rely on the format "...|team#{i}|..." + i @ 6..=9 => + { + // length: 7 ("team#" (5) + 1 digit + "|" (1)) + let s = 0 + ((i - 6) as usize) * 7; + &TEAM_NAMES[s..s + 6] // exclude the trailing "|" + }, + i @ 10..=99 => + { + // length: 8 ("team#" (5) + 2 digits + "|" (1)) + let s = 28 + ((i - 10) as usize) * 8; + &TEAM_NAMES[s..s + 7] // exclude the trailing "|" + }, + i @ 100..=255 => + { + // length: 9 ("team#" (5) + 3 digits + "|" (1)) + let s = 748 + ((i - 100) as usize) * 9; + &TEAM_NAMES[s..s + 8] // exclude the trailing "|" + }, } } } |