Remove workspace.xml
This commit is contained in:
parent
ee38dfe46b
commit
175d07476d
@ -1,309 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="6e9c8f4a-3dc5-4163-be75-9271f45aea5d" name="Default" comment="" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file leaf-file-name="init.lua" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/init.lua">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="17">
|
||||
<caret line="1" column="3" lean-forward="false" selection-start-line="1" selection-start-column="3" selection-end-line="1" selection-end-column="3" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="description.txt" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/description.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="58" lean-forward="false" selection-start-line="0" selection-start-column="58" selection-end-line="0" selection-end-column="58" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="README.md" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</first_editor>
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="GradleLocalSettings">
|
||||
<option name="externalProjectsViewState">
|
||||
<projects_view />
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="10" />
|
||||
<option name="y" value="31" />
|
||||
<option name="width" value="1346" />
|
||||
<option name="height" value="737" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
<manualOrder />
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="advanced_npc" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="advanced_npc" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scratches" />
|
||||
<pane id="AndroidView" />
|
||||
<pane id="PackagesPane" />
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
<list>
|
||||
<RuleState>
|
||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
<RuleState>
|
||||
<option name="name" value="StatusDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration default="true" type="Applet" factoryName="Applet">
|
||||
<option name="HTML_USED" value="false" />
|
||||
<option name="WIDTH" value="400" />
|
||||
<option name="HEIGHT" value="300" />
|
||||
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
||||
<module />
|
||||
</configuration>
|
||||
<configuration default="true" type="Application" factoryName="Application">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PROGRAM_PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="ENABLE_SWING_INSPECTOR" value="false" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<module name="" />
|
||||
<envs />
|
||||
</configuration>
|
||||
<configuration default="true" type="JUnit" factoryName="JUnit">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
||||
<module name="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" />
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="METHOD_NAME" />
|
||||
<option name="TEST_OBJECT" value="class" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
</configuration>
|
||||
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
|
||||
<module name="" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
|
||||
<option name="PROGRAM_PARAMETERS" />
|
||||
<predefined_log_file id="idea.log" enabled="true" />
|
||||
</configuration>
|
||||
<configuration default="true" type="Remote" factoryName="Remote">
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" value="javadebug" />
|
||||
<option name="HOST" value="localhost" />
|
||||
<option name="PORT" value="5005" />
|
||||
</configuration>
|
||||
<configuration default="true" type="TestNG" factoryName="TestNG">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
||||
<module name="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="SUITE_NAME" />
|
||||
<option name="PACKAGE_NAME" />
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="METHOD_NAME" />
|
||||
<option name="GROUP_NAME" />
|
||||
<option name="TEST_OBJECT" value="CLASS" />
|
||||
<option name="VM_PARAMETERS" value="-ea" />
|
||||
<option name="PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
|
||||
<option name="OUTPUT_DIRECTORY" />
|
||||
<option name="ANNOTATION_TYPE" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<option name="USE_DEFAULT_REPORTERS" value="false" />
|
||||
<option name="PROPERTIES_FILE" />
|
||||
<envs />
|
||||
<properties />
|
||||
<listeners />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="ShelveChangesManager" show_recycled="false">
|
||||
<option name="remove_strategy" value="false" />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="6e9c8f4a-3dc5-4163-be75-9271f45aea5d" name="Default" comment="" />
|
||||
<created>1503755656989</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1503755656989</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="10" y="31" width="1368" height="738" extended-state="6" />
|
||||
<layout>
|
||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug Logs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Palette	" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Execute Anonymous" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25340393" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="LuaJ" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Salesforce" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager />
|
||||
<watches-manager />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/init.lua">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="17">
|
||||
<caret line="1" column="3" lean-forward="false" selection-start-line="1" selection-start-column="3" selection-end-line="1" selection-end-column="3" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/description.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="58" lean-forward="false" selection-start-line="0" selection-start-column="58" selection-end-line="0" selection-end-column="58" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</first_editor>
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/init.lua">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="17">
|
||||
<caret line="1" column="3" lean-forward="false" selection-start-line="1" selection-start-column="3" selection-end-line="1" selection-end-column="3" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/description.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="58" lean-forward="false" selection-start-line="0" selection-start-column="58" selection-end-line="0" selection-end-column="58" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</first_editor>
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
@ -213,7 +213,7 @@ end
|
||||
-- TODO: This function can be improved to support a radius greater than 1.
|
||||
function npc.places.find_node_orthogonally(pos, nodes, y_adjustment)
|
||||
-- Call the more generic function with appropriate params
|
||||
npc.places.find_orthogonal_accessible_node(pos, nodes, y_adjustment, nil, nil)
|
||||
return npc.places.find_orthogonal_accessible_node(pos, nodes, y_adjustment, nil, nil)
|
||||
end
|
||||
|
||||
-- TODO: This function can be improved to support a radius greater than 1.
|
||||
@ -227,7 +227,6 @@ function npc.places.find_orthogonal_accessible_node(pos, nodes, y_adjustment, in
|
||||
local result = {}
|
||||
for _,point in pairs(points) do
|
||||
local node = minetest.get_node(point)
|
||||
--minetest.log("Found node: "..dump(node)..", at pos: "..dump(point))
|
||||
-- Search for specific node names
|
||||
if nodes then
|
||||
for _,node_name in pairs(nodes) do
|
||||
@ -442,7 +441,8 @@ function npc.places.scan_area_for_usable_nodes(pos1, pos2)
|
||||
for i = 1, #result.workplace_type do
|
||||
local meta = minetest.get_meta(result.workplace_type[i].node_pos)
|
||||
local building_type = meta:get_string("building_type") or "none"
|
||||
minetest.log("Building type: "..dump(building_type))
|
||||
local surrounding_workplace = meta:get_string("surrounding_workplace") or "false"
|
||||
result.workplace_type[i]["surrounding_workplace"] = minetest.is_yes(surrounding_workplace)
|
||||
result.workplace_type[i]["building_type"] = building_type
|
||||
end
|
||||
end
|
||||
|
@ -46,14 +46,274 @@ local farmer_def = {
|
||||
check = true,
|
||||
range = 2,
|
||||
random_execution_times = true,
|
||||
min_count = 10,
|
||||
max_count = 12,
|
||||
nodes = {"farming:cotton_3"},
|
||||
min_count = 20,
|
||||
max_count = 25,
|
||||
nodes = farming_plants.cotton,
|
||||
prefer_last_acted_upon_node = true,
|
||||
walkable_nodes = farming_plants.cotton,
|
||||
actions =
|
||||
{
|
||||
-- Actions for cotton - harvest and replant
|
||||
["farming:cotton_1"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_2",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_2"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_3",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_3"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_4",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_4"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_5",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_5"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_6",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_6"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_7",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_7"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
task = npc.actions.cmd.WALK_TO_POS,
|
||||
args = {
|
||||
end_pos = npc.places.PLACE_TYPE.SCHEDULE.TARGET,
|
||||
walkable = farming_plants.cotton
|
||||
}
|
||||
},
|
||||
[2] =
|
||||
{
|
||||
action = npc.actions.cmd.DIG,
|
||||
args = {
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
},
|
||||
[4] =
|
||||
{
|
||||
action = npc.actions.cmd.PLACE,
|
||||
args =
|
||||
{
|
||||
node = "farming:cotton_8",
|
||||
bypass_protection = true
|
||||
}
|
||||
},
|
||||
[5] =
|
||||
{
|
||||
action = npc.actions.cmd.STAND,
|
||||
args = {}
|
||||
}
|
||||
},
|
||||
["farming:cotton_8"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
@ -90,7 +350,6 @@ local farmer_def = {
|
||||
args = {}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
[3] =
|
||||
{
|
||||
|
52
npc.lua
52
npc.lua
@ -73,6 +73,34 @@ function npc.chat(npc_name, player_name, message)
|
||||
minetest.chat_send_player(player_name, npc_name..": "..message)
|
||||
end
|
||||
|
||||
-- Simple wrapper over minetest.add_particle()
|
||||
-- Copied from mobs_redo/api.lua
|
||||
function npc.effect(pos, amount, texture, min_size, max_size, radius, gravity, glow)
|
||||
|
||||
radius = radius or 2
|
||||
min_size = min_size or 0.5
|
||||
max_size = max_size or 1
|
||||
gravity = gravity or -10
|
||||
glow = glow or 0
|
||||
|
||||
minetest.add_particlespawner({
|
||||
amount = amount,
|
||||
time = 0.25,
|
||||
minpos = pos,
|
||||
maxpos = pos,
|
||||
minvel = {x = -radius, y = -radius, z = -radius},
|
||||
maxvel = {x = radius, y = radius, z = radius},
|
||||
minacc = {x = 0, y = gravity, z = 0},
|
||||
maxacc = {x = 0, y = gravity, z = 0},
|
||||
minexptime = 0.1,
|
||||
maxexptime = 1,
|
||||
minsize = min_size,
|
||||
maxsize = max_size,
|
||||
texture = texture,
|
||||
glow = glow,
|
||||
})
|
||||
end
|
||||
|
||||
-- Gets name of player or NPC
|
||||
function npc.get_entity_name(entity)
|
||||
if entity:is_player() then
|
||||
@ -1064,9 +1092,27 @@ function npc.schedule_check(self)
|
||||
-- Check if any node was found
|
||||
npc.log("DEBUG_SCHEDULE", "Found nodes using radius: "..dump(found_nodes))
|
||||
if found_nodes and #found_nodes > 0 then
|
||||
local node_pos
|
||||
local node
|
||||
-- Check if there is preference to act on nodes already acted upon
|
||||
if self.schedules.current_check_params.prefer_last_acted_upon_node == true then
|
||||
-- Find a node other than the acted upon - try 3 times
|
||||
for i = 1, #found_nodes do
|
||||
node_pos = found_nodes[i]
|
||||
-- Get node info
|
||||
node = minetest.get_node(node_pos)
|
||||
if node.name == self.schedules.current_check_params.last_node_acted_upon then
|
||||
break
|
||||
end
|
||||
end
|
||||
else
|
||||
-- Pick a random node to act upon
|
||||
local node_pos = found_nodes[math.random(1, #found_nodes)]
|
||||
local node = minetest.get_node(node_pos)
|
||||
node_pos = found_nodes[math.random(1, #found_nodes)]
|
||||
-- Get node info
|
||||
node = minetest.get_node(node_pos)
|
||||
end
|
||||
-- Save this node as the last acted upon
|
||||
self.schedules.current_check_params.last_node_acted_upon = node.name
|
||||
-- Set node as a place
|
||||
-- Note: Code below isn't *adding* a node, but overwriting the
|
||||
-- place with "schedule_target_pos" place type
|
||||
@ -1473,6 +1519,8 @@ mobs:register_mob("advanced_npc:npc", {
|
||||
nodes = check_params.nodes,
|
||||
actions = check_params.actions,
|
||||
none_actions = check_params.none_actions,
|
||||
prefer_last_acted_upon_node = check_params.prefer_last_acted_upon_node or false,
|
||||
last_node_acted_upon = "",
|
||||
execution_count = 0,
|
||||
execution_times = execution_times
|
||||
}
|
||||
|
@ -426,7 +426,7 @@ function npc.occupations.initialize_occupation_values(self, occupation_name)
|
||||
-- Add dialogues to NPC
|
||||
-- Check if there is a max of dialogues to be added
|
||||
local max_dialogue_count = npc.dialogue.MAX_DIALOGUES
|
||||
if def.dialogues.max_count and def.max_dialogue_count > 0 then
|
||||
if def.dialogues.max_count and def.dialogues.max_count > 0 then
|
||||
max_dialogue_count = def.dialogues.max_count
|
||||
end
|
||||
-- Add dialogues to the normal dialogues for NPC
|
||||
|
@ -70,7 +70,7 @@ npc.relationships.gift_items = {
|
||||
}
|
||||
|
||||
npc.relationships.DEFAULT_RESPONSE_NO_GIFT_RECEIVE =
|
||||
"Thank you, but I don't need anything for now."
|
||||
"Thank you, but I don't need anything for now."
|
||||
|
||||
-- Married NPC dialogue definition
|
||||
npc.relationships.MARRIED_NPC_DIALOGUE = {
|
||||
@ -461,13 +461,13 @@ local function show_receive_gift_reaction(self, item_name, modifier, clicker_nam
|
||||
if modifier >= 0 then
|
||||
local phase = npc.relationships.get_relationship_phase_by_points(points)
|
||||
if phase == "phase3" then
|
||||
effect({x = pos.x, y = pos.y + 1, z = pos.z}, 2, "heart.png")
|
||||
npc.effect({x = pos.x, y = pos.y + 1, z = pos.z}, 2, "heart.png")
|
||||
elseif phase == "phase4" then
|
||||
effect({x = pos.x, y = pos.y + 1, z = pos.z}, 4, "heart.png")
|
||||
npc.effect({x = pos.x, y = pos.y + 1, z = pos.z}, 4, "heart.png")
|
||||
elseif phase == "phase5" then
|
||||
effect({x = pos.x, y = pos.y + 1, z = pos.z}, 6, "heart.png")
|
||||
npc.effect({x = pos.x, y = pos.y + 1, z = pos.z}, 6, "heart.png")
|
||||
elseif phase == "phase6" then
|
||||
effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png")
|
||||
npc.effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png")
|
||||
end
|
||||
if phase_change then
|
||||
local number_code = phase:byte(phase:len()) - 1
|
||||
@ -476,23 +476,30 @@ local function show_receive_gift_reaction(self, item_name, modifier, clicker_nam
|
||||
-- Send message
|
||||
-- TODO: There might be an error with getting the message...
|
||||
--minetest.log("Item_name: "..dump(item_name)..", sex: "..dump(self.sex)..", phase: "..dump(phase))
|
||||
local message_to_send = npc.relationships.get_dialogues_for_gift_item(
|
||||
local dialogues_found = npc.relationships.get_dialogues_for_gift_item(
|
||||
item_name,
|
||||
npc.relationships.GIFT_ITEM_RESPONSE,
|
||||
npc.relationships.GIFT_ITEM_LIKED,
|
||||
npc.dialogue.tags.GIFT_ITEM_RESPONSE,
|
||||
npc.dialogue.tags.GIFT_ITEM_LIKED,
|
||||
self.sex,
|
||||
phase)
|
||||
npc.chat(self.npc_name, clicker_name, message_to_send.responses[1])
|
||||
for _, item_dialogue in pairs(dialogues_found) do
|
||||
npc.chat(self.npc_name, clicker_name, item_dialogue.text)
|
||||
end
|
||||
-- Disliked items reactions
|
||||
elseif modifier < 0 then
|
||||
effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "default_item_smoke.png")
|
||||
npc.effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "default_item_smoke.png")
|
||||
--minetest.log("Item name: "..item_name..", sex: "..self.sex)
|
||||
local message_to_send = npc.relationships.get_dialogues_for_gift_item(
|
||||
-- There should be only one dialogue, however, it returns a key-value
|
||||
-- result where we will have to do one loop
|
||||
local dialogues_found = npc.relationships.get_dialogues_for_gift_item(
|
||||
item_name,
|
||||
npc.relationships.GIFT_ITEM_RESPONSE,
|
||||
npc.relationships.GIFT_ITEM_DISLIKED,
|
||||
npc.dialogue.tags.GIFT_ITEM_RESPONSE,
|
||||
npc.dialogue.tags.GIFT_ITEM_UNLIKED,
|
||||
self.sex)
|
||||
npc.chat(self.npc_name, clicker_name, message_to_send.responses[1])
|
||||
-- minetest.log("Message: "..dump(message_to_send))
|
||||
for _, item_dialogue in pairs(dialogues_found) do
|
||||
npc.chat(self.npc_name, clicker_name, item_dialogue.text)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
27
spawner.lua
27
spawner.lua
@ -727,11 +727,15 @@ minetest.register_node("advanced_npc:workplace_marker", {
|
||||
-- Read current value
|
||||
local meta = minetest.get_meta(pos)
|
||||
local building_type = meta:get_string("building_type") or ""
|
||||
local surrounding_workplace = meta:get_string("surrounding_workplace")
|
||||
-- Consider changing the field for a dropdown
|
||||
local formspec = "size[7,3]"..
|
||||
local formspec = "size[7,4]"..
|
||||
"label[0.1,0.25;Building type]"..
|
||||
"field[0.5,1;6.5,2;text;(farm_tiny, farm_full, house, church, etc.);"..building_type.."]"..
|
||||
"button_exit[2.25,2.25;2.5,0.75;exit;Proceed]"
|
||||
"checkbox[0.5,2.25;is_surrounding;Is surrounding building;"
|
||||
..surrounding_workplace.."]"..
|
||||
"button_exit[0.95,3.25;2.5,0.75;exit_btn;Proceed]"..
|
||||
"button_exit[3.5,3.25;2.5,0.75;reset_btn;Reset]"
|
||||
|
||||
spawner.workplace_pos[clicker:get_player_name()] = pos
|
||||
|
||||
@ -779,8 +783,23 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
-- Handle workplace marker formspec
|
||||
if formname == "advanced_npc:workplace_marker_formspec" then
|
||||
if fields then
|
||||
local pos = workplace_pos[player:get_player_name()]
|
||||
if pos and fields.text then
|
||||
local pos = spawner.workplace_pos[player:get_player_name()]
|
||||
local meta = minetest.get_meta(pos)
|
||||
-- Checkbox setting
|
||||
if fields.is_surrounding then
|
||||
minetest.log("Saving.. "..fields.is_surrounding)
|
||||
meta:set_string("surrounding_workplace", ""..fields.is_surrounding.."")
|
||||
end
|
||||
-- Handle reset button
|
||||
if fields.reset_btn then
|
||||
meta:set_string("building_type", "")
|
||||
meta:set_string("surrounding_workplace", false)
|
||||
meta:set_string("infotext", "Unconfigured workplace marker")
|
||||
meta:set_string("work_data", nil)
|
||||
return
|
||||
end
|
||||
-- Handle set button
|
||||
if pos and fields.text and fields.exit_btn then
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("building_type", fields.text)
|
||||
meta:set_string("infotext", fields.text.." (workplace)")
|
||||
|
Loading…
Reference in New Issue
Block a user