From 989f32547229436713af155577cef1c21706de90 Mon Sep 17 00:00:00 2001 From: bacon Date: Tue, 29 Aug 2023 01:17:17 +0300 Subject: [PATCH] changed main --- .gitignore | 2 + .idea/modules.xml | 2 +- .idea/translation-generator.iml | 2 +- .idea/vcs.xml | 2 +- main.py | 43 +++++-- test.yml | 10 -- weapongenerator.lua | 202 -------------------------------- 7 files changed, 41 insertions(+), 222 deletions(-) create mode 100644 .gitignore delete mode 100644 test.yml delete mode 100644 weapongenerator.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..226f9a6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/venv/ +/.idea/ diff --git a/.idea/modules.xml b/.idea/modules.xml index b9bfbef..9d7093e 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ + - \ No newline at end of file diff --git a/.idea/translation-generator.iml b/.idea/translation-generator.iml index 0469a70..f124362 100644 --- a/.idea/translation-generator.iml +++ b/.idea/translation-generator.iml @@ -6,6 +6,6 @@ - + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 099d66c..72c32a1 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,6 @@ - + \ No newline at end of file diff --git a/main.py b/main.py index c26e616..e9f43e1 100755 --- a/main.py +++ b/main.py @@ -20,6 +20,15 @@ def scan_files(path) -> list: return list_files +def open_translate(arg, lang='ru'): + translation_file = arg + fr'/data/localization/{lang}.po' + with open(translation_file, 'r') as f: + translation_text = f.read() + translation_json = translation_text.split('\n\n') + print(translation_json) + return translation_json + + def parsing_file(f): with open(f) as _f: _cached = _f.read() @@ -39,21 +48,40 @@ def pars_file(name: str) -> list: :param name: name of file :return: """ - list_to_translate: list = [] + _list: list = [] for _str in parsing_file(name): - string_to_translate = re.findall('"(.*[^/])(?: /\* (.*)\*/)?"%_[t|T]', _str) - list_to_translate.append(string_to_translate) - return list_to_translate + _str_parsed = re.findall('"([^/\"]*)(?: /\*(.*)\*/)?"%_[t,T]', _str) + _list.append(_str_parsed) + return _list def all_to_translate(_dir): _files = scan_files(_dir) - to_file: str = '' + _str = '' for _file in _files: _strings = pars_file(_file) - if len(_strings) > 0: to_file = f'{_file}\n {_strings} \n {len(_strings)}\n\n\n' + _list = [] + if len(_strings) > 0: + for _string in _strings: + _list.append(_string) + _title = f'# ========== {_file.split("WPE2")[1]} ==========\n' + _str = _str + _title + print(f'Generate translation file for {_file.split("WPE2")[1]}') + # print(_list) + for _name in _list: + _msgctxt = '' + if len(_name[0][1]) > 1: + _msgctxt = f'msgctxt "{_name[0][1]}"\n' + + _msgid = f'msgid "{_name[0][0]}"\n' + + _entity = f'#: {_file.split("WPE2")[1]}:\n{_msgctxt}{_msgid}msgstr ""\n\n' + _str = _str + _entity with open('test.txt', 'w') as f: - f.write(to_file) + f.write(_str) + + + if __name__ == '__main__': @@ -63,3 +91,4 @@ if __name__ == '__main__': arg = r'C:\Users\riksl\AppData\Roaming\Avorion\mods\WPE2' all_to_translate(arg) + # open_translate(arg) diff --git a/test.yml b/test.yml deleted file mode 100644 index 4a3b4c6..0000000 --- a/test.yml +++ /dev/null @@ -1,10 +0,0 @@ -image: python:3.10 - -.pre: - script: - - 'pip3 install requests' - -deploy: - stage: prepare - script: - - 'python3 main.py' diff --git a/weapongenerator.lua b/weapongenerator.lua deleted file mode 100644 index 767b222..0000000 --- a/weapongenerator.lua +++ /dev/null @@ -1,202 +0,0 @@ - -function WeaponGenerator.generateAutoCannon(rand, dps, tech, material, rarity) - local weapon = Weapon() - weapon:setProjectile() - - dps = dps * 0.75 - local fireDelay = rand:getFloat(1.5, 2.5)*0.5 - local reach = rand:getFloat(1100, 1500)*0.7 - local damage = dps * fireDelay - local speed = rand:getFloat(300, 400)*2 - local existingTime = (reach / speed)*1.2 - - weapon.fireDelay = fireDelay - weapon.reach = reach - weapon.appearanceSeed = rand:getInt() - weapon.seeker = rand:test(1 / 2) - weapon.appearance = WeaponAppearance.Cannon - weapon.name = "Auto Cannon /* Weapon Name*/"%_t - weapon.prefix = "Auto Cannon /* Weapon Prefix*/"%_t - weapon.icon = "data/textures/icons/autocannon.png" - weapon.sound = "cannon" - weapon.accuracy = 0.99 - rand:getFloat(0, 0.03) - - weapon.damage = damage - weapon.damageType = DamageType.Physical - weapon.impactParticles = ImpactParticles.Explosion - weapon.shieldDamageMultiplicator=1.1 + rarity.value * 0.1 - weapon.impactSound = 1 - weapon.impactExplosion = true - - weapon.psize = rand:getFloat(0.2, 0.5) - weapon.pmaximumTime = existingTime - weapon.pvelocity = speed - weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1) - - WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity) - - -- these have to be assigned after the weapon was adjusted since the damage might be changed - weapon.recoil = weapon.damage * 20 * 0.75 - weapon.explosionRadius = math.sqrt(weapon.damage * 6) - - return weapon -end - -generatorFunction[WeaponType.AutoCannon] = WeaponGenerator.generateAutoCannon - - -function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity) - local weapon = Weapon() - weapon:setProjectile() - - dps = dps * 1.85 - local fireDelay = rand:getFloat(1.5, 2.0)*1.7 - local reach = rand:getFloat(1100, 1500)*1.2 - local damage = dps * fireDelay - local speed = rand:getFloat(600, 1000)*1.4 - local existingTime = (reach / speed)*1.1 - - weapon.fireDelay = fireDelay - weapon.reach = reach - weapon.appearanceSeed = rand:getInt() - weapon.appearance = WeaponAppearance.Bolter - weapon.name = "Heavy Cannon /* Weapon Name*/"%_t - weapon.icon = "data/textures/icons/heavycannon.png" - weapon.sound = "cannon" - weapon.accuracy = 0.95 - rand:getFloat(0, 0.02) - - weapon.damage = damage - weapon.damageType = DamageType.Physical - weapon.impactParticles = ImpactParticles.Explosion - weapon.impactSound = 1 - weapon.impactExplosion = true - weapon.otherForce = dps*math.max(1, rarity.value)*89*5 - - - weapon.psize = rand:getFloat(0.2, 0.5) - weapon.pmaximumTime = existingTime - weapon.pvelocity = speed - weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1) - - local Pen = rand:getInt(0, rarity.value) - if Pen > 0 then - weapon.blockPenetration = Pen - weapon.prefix = "Cumulative Heavy Cannon /* Weapon Prefix*/"%_t - else - weapon.prefix = "Heavy Cannon /* Weapon Prefix*/"%_t - end - - - WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity) - - -- these have to be assigned after the weapon was adjusted since the damage might be changed - weapon.recoil = weapon.damage * 50 - weapon.explosionRadius = math.sqrt(weapon.damage * 7) - - return weapon -end - -generatorFunction[WeaponType.HeavyCannon] = WeaponGenerator.generateHeavyCannon - - -function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity) - local weapon = Weapon() - weapon:setBeam() - - local fireDelay = rand:getFloat(1, 2.5)*0.5 - local reach = rand:getFloat(950, 1400) - local damage = dps * fireDelay - - weapon.fireDelay = fireDelay - weapon.appearanceSeed = rand:getInt() - weapon.reach = reach - weapon.continuousBeam = false - weapon.appearance = WeaponAppearance.Tesla - weapon.name = "Diffuser /* Weapon Name*/"%_t - weapon.prefix = "Diffuser /* Weapon Prefix*/"%_t - weapon.icon = "data/textures/icons/diffuser.png" - weapon.sound = "railgun" - weapon.accuracy = 0.99 - rand:getFloat(0, 0.02) - - weapon.damage = damage - weapon.damageType = DamageType.Energy - weapon.impactParticles = ImpactParticles.Energy - weapon.shieldDamageMultiplicator = 20 + rand:getFloat(0, 4) + rarity.value * 3 - weapon.stoneDamageMultiplicator = 0 - weapon.hullDamageMultiplicator = 0 - weapon.impactSound = 1 - - weapon.blength = weapon.reach - weapon.bshape = BeamShape.Lightning - weapon.bwidth = 0.5 - weapon.bauraWidth = 3 - weapon.banimationSpeed = 0 - weapon.banimationAcceleration = 0 - weapon.bshapeSize = 13 - - -- shades of blue - weapon.bouterColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.5, 1), rand:getFloat(0.1, 0.5)) - weapon.binnerColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.1, 0.5), 1) - - WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity) - - weapon.recoil = weapon.damage * 5 - - return weapon -end - -generatorFunction[WeaponType.Diffuser] = WeaponGenerator.generateDiffuser - - - -function WeaponGenerator.generateHarpoon(rand, dps, tech, material, rarity) - local weapon = Weapon() - weapon:setBeam() - - local fireDelay = rand:getFloat(0.2, 0.5) - local reach = rand:getFloat(500, 900) - local damage = dps * fireDelay - - weapon.fireDelay = fireDelay - weapon.appearanceSeed = rand:getInt() - weapon.reach = reach - weapon.continuousBeam = true - weapon.appearance = WeaponAppearance.Cannon - weapon.name = "Harpoon /* Weapon Name*/"%_t - weapon.prefix = "Harpoon /* Weapon Prefix*/"%_t - weapon.icon = "data/textures/icons/harpoon.png" - weapon.sound = "cannon" - weapon.accuracy = 0.99 - rand:getFloat(0, 0.02) - - weapon.blockPenetration = rand:getInt(0, rarity.value) + 2 - - - weapon.otherForce = -500 * dps * rarity.value - - weapon.damage = damage - weapon.damageType = DamageType.Physical - weapon.impactParticles = ImpactParticles.Physical - weapon.shieldDamageMultiplicator = 0.75 - weapon.stoneDamageMultiplicator = 1.2 - weapon.hullDamageMultiplicator = 1 - weapon.impactSound = 1 - - weapon.blength = weapon.reach - weapon.bshape = BeamShape.Swirly - weapon.bwidth = 0.5 - weapon.bauraWidth = 3 - weapon.banimationSpeed = 0 - weapon.banimationAcceleration = 0 - weapon.bshapeSize = 13 - - -- shades of blue - weapon.bouterColor = ColorHSV(0, 0, rand:getFloat(0.35, 0.65)) - weapon.binnerColor = ColorHSV(1, 1, rand:getFloat(0.35, 0.65)) - - WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity) - - - return weapon -end - -generatorFunction[WeaponType.Harpoon] = WeaponGenerator.generateHarpoon