mirror of
https://github.com/Dadido3/noita-mapcap.git
synced 2024-11-18 17:17:31 +00:00
Reduce more animations for a cleaner image
- Add override misc\custom_cards\energy_shield.xml - Add override misc\custom_cards\action.xml - Add override entities\base_custom_card.xml - Add override to data/scripts/perks/perk.lua that disables SpriteOffsetAnimatorComponent - Add WrapID functions to Noita API - Remove unecessary entity modifications in capture.lua
This commit is contained in:
parent
f58b005155
commit
8f3ecefa8b
70
data/entities/base_custom_card.xml
Normal file
70
data/entities/base_custom_card.xml
Normal file
@ -0,0 +1,70 @@
|
||||
<Entity name="card" tags="card_action">
|
||||
|
||||
<ItemComponent
|
||||
_tags="enabled_in_world"
|
||||
play_spinning_animation="0"
|
||||
preferred_inventory="FULL"
|
||||
></ItemComponent>
|
||||
|
||||
<HitboxComponent
|
||||
_tags="enabled_in_world"
|
||||
aabb_min_x="-4"
|
||||
aabb_max_x="4"
|
||||
aabb_min_y="-3"
|
||||
aabb_max_y="3"
|
||||
></HitboxComponent>
|
||||
|
||||
<SimplePhysicsComponent
|
||||
_tags="enabled_in_world"
|
||||
></SimplePhysicsComponent>
|
||||
|
||||
<VelocityComponent
|
||||
_tags="enabled_in_world"
|
||||
></VelocityComponent>
|
||||
|
||||
<!-- <SpriteComponent
|
||||
_tags="enabled_in_world,item_unlocked"
|
||||
image_file="data/ui_gfx/gun_actions/empty.png"
|
||||
offset_x="8"
|
||||
offset_y="8"
|
||||
></SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_tags="enabled_in_world,item_locked"
|
||||
image_file="data/ui_gfx/gun_actions/unidentified.png"
|
||||
offset_x="8"
|
||||
offset_y="8"
|
||||
></SpriteComponent> -->
|
||||
|
||||
<SpriteComponent
|
||||
_tags="enabled_in_world,item_identified"
|
||||
image_file="data/ui_gfx/gun_actions/empty.png"
|
||||
offset_x="8"
|
||||
offset_y="17"
|
||||
z_index="-1.51"
|
||||
></SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_enabled="0"
|
||||
_tags="enabled_in_world,item_unidentified"
|
||||
image_file="data/ui_gfx/gun_actions/unidentified.png"
|
||||
offset_x="8"
|
||||
offset_y="17"
|
||||
z_index="-1.51"
|
||||
></SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_enabled="0"
|
||||
_tags="enabled_in_world,item_bg"
|
||||
image_file="data/ui_gfx/inventory/item_bg_projectile.png"
|
||||
offset_x="10"
|
||||
offset_y="19"
|
||||
z_index="-1.5"
|
||||
></SpriteComponent>
|
||||
|
||||
<ItemActionComponent
|
||||
_tags="enabled_in_world"
|
||||
action_id=""
|
||||
></ItemActionComponent>
|
||||
|
||||
</Entity>
|
70
data/entities/misc/custom_cards/action.xml
Normal file
70
data/entities/misc/custom_cards/action.xml
Normal file
@ -0,0 +1,70 @@
|
||||
<Entity tags="card_action">
|
||||
|
||||
<ItemComponent
|
||||
_tags="enabled_in_world"
|
||||
play_spinning_animation="0"
|
||||
preferred_inventory="FULL"
|
||||
></ItemComponent>
|
||||
|
||||
<HitboxComponent
|
||||
_tags="enabled_in_world"
|
||||
aabb_min_x="-4"
|
||||
aabb_max_x="4"
|
||||
aabb_min_y="-3"
|
||||
aabb_max_y="3"
|
||||
></HitboxComponent>
|
||||
|
||||
<SimplePhysicsComponent
|
||||
_tags="enabled_in_world"
|
||||
></SimplePhysicsComponent>
|
||||
|
||||
<VelocityComponent
|
||||
_tags="enabled_in_world"
|
||||
></VelocityComponent>
|
||||
|
||||
<!-- <SpriteComponent
|
||||
_tags="enabled_in_world,item_unlocked"
|
||||
image_file="data/ui_gfx/gun_actions/unidentified.png"
|
||||
offset_x="8"
|
||||
offset_y="8"
|
||||
></SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_tags="enabled_in_world,item_locked"
|
||||
image_file="data/ui_gfx/gun_actions/unidentified.png"
|
||||
offset_x="8"
|
||||
offset_y="8"
|
||||
></SpriteComponent> -->
|
||||
|
||||
<SpriteComponent
|
||||
_tags="enabled_in_world,item_identified"
|
||||
image_file="data/ui_gfx/gun_actions/empty.png"
|
||||
offset_x="8"
|
||||
offset_y="17"
|
||||
z_index="-1.51"
|
||||
></SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_enabled="0"
|
||||
_tags="enabled_in_world,item_unidentified"
|
||||
image_file="data/ui_gfx/gun_actions/unidentified.png"
|
||||
offset_x="8"
|
||||
offset_y="17"
|
||||
z_index="-1.51"
|
||||
></SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_enabled="0"
|
||||
_tags="enabled_in_world,item_bg"
|
||||
image_file="data/ui_gfx/inventory/item_bg_projectile.png"
|
||||
offset_x="10"
|
||||
offset_y="19"
|
||||
z_index="-1.5"
|
||||
></SpriteComponent>
|
||||
|
||||
<ItemActionComponent
|
||||
_tags="enabled_in_world"
|
||||
action_id=""
|
||||
></ItemActionComponent>
|
||||
|
||||
</Entity>
|
153
data/entities/misc/custom_cards/energy_shield.xml
Normal file
153
data/entities/misc/custom_cards/energy_shield.xml
Normal file
@ -0,0 +1,153 @@
|
||||
<Entity tags="card_action,energy_shield">
|
||||
<ItemComponent
|
||||
_tags="enabled_in_world"
|
||||
play_spinning_animation="0"
|
||||
preferred_inventory="FULL"
|
||||
></ItemComponent>
|
||||
|
||||
<HitboxComponent
|
||||
_tags="enabled_in_world"
|
||||
aabb_min_x="-4"
|
||||
aabb_max_x="4"
|
||||
aabb_min_y="-3"
|
||||
aabb_max_y="3"
|
||||
></HitboxComponent>
|
||||
|
||||
<SimplePhysicsComponent
|
||||
_tags="enabled_in_world"
|
||||
></SimplePhysicsComponent>
|
||||
|
||||
<VelocityComponent
|
||||
_tags="enabled_in_world"
|
||||
></VelocityComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_tags="enabled_in_world,item_identified"
|
||||
image_file="data/ui_gfx/gun_actions/energy_shield.png"
|
||||
offset_x="8"
|
||||
offset_y="17"
|
||||
z_index="-1.51" >
|
||||
</SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_enabled="0"
|
||||
_tags="enabled_in_world,item_unidentified"
|
||||
image_file="data/ui_gfx/gun_actions/unidentified.png"
|
||||
offset_x="8"
|
||||
offset_y="17"
|
||||
z_index="-1.51" >
|
||||
</SpriteComponent>
|
||||
|
||||
<SpriteComponent
|
||||
_enabled="0"
|
||||
_tags="enabled_in_world,item_bg"
|
||||
image_file="data/ui_gfx/inventory/item_bg_projectile.png"
|
||||
offset_x="10"
|
||||
offset_y="19"
|
||||
z_index="-1.5"
|
||||
></SpriteComponent>
|
||||
|
||||
<ItemActionComponent
|
||||
_tags="enabled_in_world"
|
||||
action_id="ENERGY_SHIELD" >
|
||||
</ItemActionComponent>
|
||||
|
||||
<InheritTransformComponent
|
||||
_tags="enabled_in_hand"
|
||||
use_root_parent="1">
|
||||
<Transform
|
||||
position.x="0"
|
||||
position.y="-4" >
|
||||
</Transform>
|
||||
</InheritTransformComponent>
|
||||
|
||||
<EnergyShieldComponent
|
||||
_tags="enabled_in_hand,item_identified__LEGACY"
|
||||
recharge_speed="0.25"
|
||||
radius="16.0"
|
||||
>
|
||||
</EnergyShieldComponent>
|
||||
|
||||
<ParticleEmitterComponent
|
||||
_tags="character,enabled_in_hand,item_identified__LEGACY"
|
||||
emitted_material_name="plasma_fading"
|
||||
gravity.y="0.0"
|
||||
lifetime_min="0.1"
|
||||
lifetime_max="0.5"
|
||||
count_min="2"
|
||||
count_max="4"
|
||||
render_on_grid="1"
|
||||
fade_based_on_lifetime="1"
|
||||
area_circle_radius.max="16"
|
||||
cosmetic_force_create="0"
|
||||
airflow_force="0.5"
|
||||
airflow_time="0.1"
|
||||
airflow_scale="0.5"
|
||||
emission_interval_min_frames="1"
|
||||
emission_interval_max_frames="1"
|
||||
emit_cosmetic_particles="1"
|
||||
is_emitting="1" >
|
||||
</ParticleEmitterComponent>
|
||||
|
||||
<ParticleEmitterComponent
|
||||
_tags="character,enabled_in_hand,item_identified__LEGACY,shield_ring"
|
||||
emitted_material_name="plasma_fading"
|
||||
gravity.y="0.0"
|
||||
lifetime_min="0.02"
|
||||
lifetime_max="0.05"
|
||||
count_min="90"
|
||||
count_max="100"
|
||||
render_on_grid="1"
|
||||
fade_based_on_lifetime="1"
|
||||
area_circle_radius.min="16"
|
||||
area_circle_radius.max="16"
|
||||
cosmetic_force_create="0"
|
||||
airflow_force="0.3"
|
||||
airflow_time="0.01"
|
||||
airflow_scale="0.05"
|
||||
emission_interval_min_frames="0"
|
||||
emission_interval_max_frames="0"
|
||||
emit_cosmetic_particles="1"
|
||||
is_emitting="1" >
|
||||
</ParticleEmitterComponent>
|
||||
|
||||
<ParticleEmitterComponent
|
||||
_tags="character,enabled_in_hand,item_identified__LEGACY,shield_hit"
|
||||
emitted_material_name="plasma_fading"
|
||||
gravity.y="0.0"
|
||||
lifetime_min="0.3"
|
||||
lifetime_max="1"
|
||||
count_min="300"
|
||||
count_max="360"
|
||||
render_on_grid="1"
|
||||
fade_based_on_lifetime="1"
|
||||
area_circle_radius.min="16"
|
||||
area_circle_radius.max="16"
|
||||
cosmetic_force_create="0"
|
||||
airflow_force="2.8"
|
||||
airflow_time="0.03"
|
||||
airflow_scale="0.8"
|
||||
emission_interval_min_frames="0"
|
||||
emission_interval_max_frames="0"
|
||||
emit_cosmetic_particles="1"
|
||||
is_emitting="0" >
|
||||
</ParticleEmitterComponent>
|
||||
|
||||
<LightComponent
|
||||
_tags="enabled_in_hand,item_identified"
|
||||
_enabled="1"
|
||||
radius="80"
|
||||
fade_out_time="1.5"
|
||||
r="150"
|
||||
g="190"
|
||||
b="230" >
|
||||
</LightComponent>
|
||||
|
||||
<AudioComponent
|
||||
_tags="enabled_in_hand,item_identified"
|
||||
file="data/audio/Desktop/projectiles.bank"
|
||||
event_root="player_projectiles/shield"
|
||||
set_latest_event_position="1" >
|
||||
</AudioComponent>
|
||||
|
||||
</Entity>
|
@ -45,7 +45,7 @@ local componentTypeNamesToDisable = {
|
||||
"DamageModelComponent",
|
||||
"PhysicsBodyCollisionDamageComponent",
|
||||
"ExplodeOnDamageComponent",
|
||||
"SpriteOffsetAnimatorComponent",
|
||||
--"SpriteOffsetAnimatorComponent",
|
||||
--"PhysicsBody2Component", -- Disabling will hide barrels and similar stuff, also triggers an assertion.
|
||||
--"PhysicsBodyComponent",
|
||||
--"VelocityComponent", -- Disabling this component may cause a "...\component_updators\advancedfishai_system.cpp at line 107" exception.
|
||||
@ -125,13 +125,13 @@ local function captureEntities(entityFile, x, y, radius)
|
||||
end
|
||||
|
||||
-- Disable the hover animation of cards. Disabling the "SpriteOffsetAnimatorComponent" does not help.
|
||||
local components = rootEntity:GetComponents("SpriteOffsetAnimatorComponent")
|
||||
for _, component in ipairs(components) do
|
||||
component:SetValue("x_speed", 0)
|
||||
component:SetValue("y_speed", 0)
|
||||
component:SetValue("x_amount", 0)
|
||||
component:SetValue("y_amount", 0)
|
||||
end
|
||||
--local components = rootEntity:GetComponents("SpriteOffsetAnimatorComponent")
|
||||
--for _, component in ipairs(components) do
|
||||
-- component:SetValue("x_speed", 0)
|
||||
-- component:SetValue("y_speed", 0)
|
||||
-- component:SetValue("x_amount", 0)
|
||||
-- component:SetValue("y_amount", 0)
|
||||
--end
|
||||
|
||||
end
|
||||
end
|
||||
|
@ -23,6 +23,14 @@ local EntityAPI = {}
|
||||
local NoitaEntity = {}
|
||||
NoitaEntity.__index = NoitaEntity
|
||||
|
||||
---WrapID wraps the given entity ID and returns a Noita entity object.
|
||||
---@param id number
|
||||
---@return NoitaEntity|nil
|
||||
function EntityAPI.WrapID(id)
|
||||
if id == nil or type(id) ~= "number" then return nil end
|
||||
return setmetatable({ ID = id }, NoitaEntity)
|
||||
end
|
||||
|
||||
local ComponentAPI = {}
|
||||
|
||||
---@class NoitaComponent
|
||||
@ -30,6 +38,14 @@ local ComponentAPI = {}
|
||||
local NoitaComponent = {}
|
||||
NoitaComponent.__index = NoitaComponent
|
||||
|
||||
---WrapID wraps the given component ID and returns a Noita component object.
|
||||
---@param id number
|
||||
---@return NoitaComponent|nil
|
||||
function ComponentAPI.WrapID(id)
|
||||
if id == nil or type(id) ~= "number" then return nil end
|
||||
return setmetatable({ ID = id }, NoitaComponent)
|
||||
end
|
||||
|
||||
-------------------------
|
||||
-- JSON Implementation --
|
||||
-------------------------
|
||||
|
26
files/overrides/perks/perk.lua
Normal file
26
files/overrides/perks/perk.lua
Normal file
@ -0,0 +1,26 @@
|
||||
-- Copyright (c) 2022 David Vogel
|
||||
--
|
||||
-- This software is released under the MIT License.
|
||||
-- https://opensource.org/licenses/MIT
|
||||
|
||||
---@type NoitaAPI
|
||||
local noitaAPI = dofile_once("mods/noita-mapcap/files/noita-api.lua")
|
||||
|
||||
local oldPerkSpawn = perk_spawn
|
||||
|
||||
---Spawns a perk.
|
||||
---@param x number
|
||||
---@param y number
|
||||
---@param perkID integer
|
||||
---@param dontRemoveOtherPerks boolean
|
||||
---@return NoitaEntity|nil
|
||||
function perk_spawn(x, y, perkID, dontRemoveOtherPerks)
|
||||
local entity = noitaAPI.Entity.WrapID(oldPerkSpawn(x, y, perkID, dontRemoveOtherPerks))
|
||||
if entity == nil then return end
|
||||
|
||||
-- Remove the SpriteOffsetAnimatorComponent components from the entity.
|
||||
local components = entity:GetComponents("SpriteOffsetAnimatorComponent")
|
||||
for _, component in ipairs(components) do
|
||||
entity:RemoveComponent(component)
|
||||
end
|
||||
end
|
8
init.lua
8
init.lua
@ -1,3 +1,8 @@
|
||||
-- Copyright (c) 2022 David Vogel
|
||||
--
|
||||
-- This software is released under the MIT License.
|
||||
-- https://opensource.org/licenses/MIT
|
||||
|
||||
dofile("mods/noita-mapcap/files/init.lua")
|
||||
|
||||
function OnPlayerSpawned(player_entity)
|
||||
@ -11,3 +16,6 @@ function OnWorldPostUpdate() -- this is called every time the game has finished
|
||||
end
|
||||
|
||||
ModMagicNumbersFileAdd("mods/noita-mapcap/files/magic_numbers.xml") -- override some game constants
|
||||
|
||||
-- Apply overrides.
|
||||
ModLuaFileAppend("data/scripts/perks/perk.lua", "mods/noita-mapcap/files/overrides/perks/perk.lua" )
|
Loading…
Reference in New Issue
Block a user