mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-12-13 18:21:51 +00:00
More mod examples
This commit is contained in:
parent
43348a8931
commit
41a8d4334c
@ -59,7 +59,6 @@ registerMod(() => {
|
|||||||
|
|
||||||
// Make the player start with some currency
|
// Make the player start with some currency
|
||||||
this.modInterface.runAfterMethod(shapez.GameCore, "initNewGame", function () {
|
this.modInterface.runAfterMethod(shapez.GameCore, "initNewGame", function () {
|
||||||
console.log("Giving player start currency");
|
|
||||||
this.root.hubGoals.storedShapes[CURRENCY] = 100;
|
this.root.hubGoals.storedShapes[CURRENCY] = 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -86,8 +85,6 @@ registerMod(() => {
|
|||||||
this.modInterface.replaceMethod(shapez.GameLogic, "tryPlaceBuilding", function ($original, args) {
|
this.modInterface.replaceMethod(shapez.GameLogic, "tryPlaceBuilding", function ($original, args) {
|
||||||
const result = $original(...args);
|
const result = $original(...args);
|
||||||
if (result && result.components.Belt) {
|
if (result && result.components.Belt) {
|
||||||
console.log("BELT PLACED");
|
|
||||||
|
|
||||||
this.root.hubGoals.storedShapes[CURRENCY]--;
|
this.root.hubGoals.storedShapes[CURRENCY]--;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -19,6 +19,9 @@ registerMod(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
|
// Notice that, since the UI is scaled dynamically, every pixel value
|
||||||
|
// should be wrapped in '$scaled()' (see below)
|
||||||
|
|
||||||
this.modInterface.registerCss(`
|
this.modInterface.registerCss(`
|
||||||
* {
|
* {
|
||||||
font-family: "Comic Sans", "Comic Sans MS", "ComicSans", Tahoma !important;
|
font-family: "Comic Sans", "Comic Sans MS", "ComicSans", Tahoma !important;
|
||||||
@ -33,7 +36,7 @@ registerMod(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#state_MainMenuState .mainContainer, #state_MainMenuState .modsOverview {
|
#state_MainMenuState .mainContainer, #state_MainMenuState .modsOverview {
|
||||||
border: 5px solid #000 !important;
|
border: $scaled(5px) solid #000 !important;
|
||||||
}
|
}
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
|
|||||||
53
mod_examples/custom_sub_shapes.js
Normal file
53
mod_examples/custom_sub_shapes.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* This shows how to add custom sub shapes
|
||||||
|
*/
|
||||||
|
registerMod(() => {
|
||||||
|
return class ModImpl extends shapez.Mod {
|
||||||
|
constructor(app, modLoader) {
|
||||||
|
super(
|
||||||
|
app,
|
||||||
|
{
|
||||||
|
website: "https://tobspr.io",
|
||||||
|
author: "tobspr",
|
||||||
|
name: "Mod Example: Custom Sub Shapes",
|
||||||
|
version: "1",
|
||||||
|
id: "custom-sub-shapes",
|
||||||
|
description: "Shows how to add custom sub shapes",
|
||||||
|
},
|
||||||
|
modLoader
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
// Add a new type of sub shape ("Line", short code "L")
|
||||||
|
this.modInterface.registerSubShapeType({
|
||||||
|
id: "line",
|
||||||
|
shortCode: "L",
|
||||||
|
|
||||||
|
// Make it spawn on the map
|
||||||
|
weightComputation: distanceToOriginInChunks =>
|
||||||
|
Math.round(20 + Math.max(Math.min(distanceToOriginInChunks, 30), 0)),
|
||||||
|
|
||||||
|
// This defines how to draw it
|
||||||
|
draw: ({ context, quadrantSize, layerScale }) => {
|
||||||
|
const quadrantHalfSize = quadrantSize / 2;
|
||||||
|
context.beginPath();
|
||||||
|
context.moveTo(-quadrantHalfSize, quadrantHalfSize);
|
||||||
|
context.arc(
|
||||||
|
-quadrantHalfSize,
|
||||||
|
quadrantHalfSize,
|
||||||
|
quadrantSize * layerScale,
|
||||||
|
-Math.PI * 0.25,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
context.closePath();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Modify the goal of the first level to add our goal
|
||||||
|
this.signals.modifyLevelDefinitions.add(definitions => {
|
||||||
|
definitions[0].shape = "LuLuLuLu";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
71
mod_examples/translations.js
Normal file
71
mod_examples/translations.js
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
/**
|
||||||
|
* Shows to add new translations
|
||||||
|
*/
|
||||||
|
registerMod(() => {
|
||||||
|
return class ModImpl extends shapez.Mod {
|
||||||
|
constructor(app, modLoader) {
|
||||||
|
super(
|
||||||
|
app,
|
||||||
|
{
|
||||||
|
website: "https://tobspr.io",
|
||||||
|
author: "tobspr",
|
||||||
|
name: "Mod Example: Translations",
|
||||||
|
version: "1",
|
||||||
|
id: "translations",
|
||||||
|
description: "Shows how to add and modify translations",
|
||||||
|
},
|
||||||
|
modLoader
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
// Replace an existing translation in the english language
|
||||||
|
this.modInterface.registerTranslations("en", {
|
||||||
|
ingame: {
|
||||||
|
interactiveTutorial: {
|
||||||
|
title: "Hello",
|
||||||
|
hints: {
|
||||||
|
"1_1_extractor": "World!",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Replace an existing translation in german
|
||||||
|
this.modInterface.registerTranslations("de", {
|
||||||
|
ingame: {
|
||||||
|
interactiveTutorial: {
|
||||||
|
title: "Hallo",
|
||||||
|
hints: {
|
||||||
|
"1_1_extractor": "Welt!",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add an entirely new translation which is localized in german and english
|
||||||
|
this.modInterface.registerTranslations("en", {
|
||||||
|
mods: {
|
||||||
|
mymod: {
|
||||||
|
test: "Test Translation",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.modInterface.registerTranslations("de", {
|
||||||
|
mods: {
|
||||||
|
mymod: {
|
||||||
|
test: "Test Übersetzung",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Show a dialog in the main menu
|
||||||
|
this.signals.stateEntered.add(state => {
|
||||||
|
if (state instanceof shapez.MainMenuState) {
|
||||||
|
// Will show differently based on the selected language
|
||||||
|
this.dialogs.showInfo("My translation", shapez.T.mods.mymod.test);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user