mirror of
				https://github.com/Dadido3/noita-mapcap.git
				synced 2025-11-04 07:19:34 +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",
 | 
						"DamageModelComponent",
 | 
				
			||||||
	"PhysicsBodyCollisionDamageComponent",
 | 
						"PhysicsBodyCollisionDamageComponent",
 | 
				
			||||||
	"ExplodeOnDamageComponent",
 | 
						"ExplodeOnDamageComponent",
 | 
				
			||||||
	"SpriteOffsetAnimatorComponent",
 | 
						--"SpriteOffsetAnimatorComponent",
 | 
				
			||||||
	--"PhysicsBody2Component", -- Disabling will hide barrels and similar stuff, also triggers an assertion.
 | 
						--"PhysicsBody2Component", -- Disabling will hide barrels and similar stuff, also triggers an assertion.
 | 
				
			||||||
	--"PhysicsBodyComponent",
 | 
						--"PhysicsBodyComponent",
 | 
				
			||||||
	--"VelocityComponent", -- Disabling this component may cause a "...\component_updators\advancedfishai_system.cpp at line 107" exception.
 | 
						--"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
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			-- Disable the hover animation of cards. Disabling the "SpriteOffsetAnimatorComponent" does not help.
 | 
								-- Disable the hover animation of cards. Disabling the "SpriteOffsetAnimatorComponent" does not help.
 | 
				
			||||||
			local components = rootEntity:GetComponents("SpriteOffsetAnimatorComponent")
 | 
								--local components = rootEntity:GetComponents("SpriteOffsetAnimatorComponent")
 | 
				
			||||||
			for _, component in ipairs(components) do
 | 
								--for _, component in ipairs(components) do
 | 
				
			||||||
				component:SetValue("x_speed", 0)
 | 
								--	component:SetValue("x_speed", 0)
 | 
				
			||||||
				component:SetValue("y_speed", 0)
 | 
								--	component:SetValue("y_speed", 0)
 | 
				
			||||||
				component:SetValue("x_amount", 0)
 | 
								--	component:SetValue("x_amount", 0)
 | 
				
			||||||
				component:SetValue("y_amount", 0)
 | 
								--	component:SetValue("y_amount", 0)
 | 
				
			||||||
			end
 | 
								--end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,14 @@ local EntityAPI = {}
 | 
				
			|||||||
local NoitaEntity = {}
 | 
					local NoitaEntity = {}
 | 
				
			||||||
NoitaEntity.__index = 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 = {}
 | 
					local ComponentAPI = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---@class NoitaComponent
 | 
					---@class NoitaComponent
 | 
				
			||||||
@ -30,6 +38,14 @@ local ComponentAPI = {}
 | 
				
			|||||||
local NoitaComponent = {}
 | 
					local NoitaComponent = {}
 | 
				
			||||||
NoitaComponent.__index = 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 --
 | 
					-- 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")
 | 
					dofile("mods/noita-mapcap/files/init.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function OnPlayerSpawned(player_entity)
 | 
					function OnPlayerSpawned(player_entity)
 | 
				
			||||||
@ -11,3 +16,6 @@ function OnWorldPostUpdate() -- this is called every time the game has finished
 | 
				
			|||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ModMagicNumbersFileAdd("mods/noita-mapcap/files/magic_numbers.xml") -- override some game constants
 | 
					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