1
0
Fork 0
mirror of https://github.com/Acamaeda/The-Modding-Tree.git synced 2024-11-27 18:41:57 +00:00

Added drop-down

This commit is contained in:
Harley White 2021-06-03 10:28:07 -04:00
parent cd71349fd5
commit e7b0af397d
9 changed files with 30 additions and 11 deletions

View file

@ -1,7 +1,9 @@
# The Modding Tree changelog:
### v2.5.12 - 6/2/21
### v2.6 - 6/2/21
- Fixed issues with NaN checking. Saves should never break now unless something really unusual happens.
- Added a drop-down menu component!
- Options are now saved separately, and not affected by hard resetting or importing saves.
- Fixed demo.html
- Fixed branches not working on the right tab.
- Fixed background color not working on the left tab.
@ -13,6 +15,7 @@
- resetsNothing now works immediately on a reset that enables it.
- Made the star on maxed challenges larger.
- diff can no longer be negative.
- Fixed challenges with no currencyDisplayName using "points" instead of the mod's pointsName.
- inChallenge no longer can return undefined.
- Fixed certain things skipping negative rows (now they are treated like non-numeric rows, and don't appear in the tree still).

View file

@ -126,6 +126,5 @@
<bg :layer="player.tab" ></bg>
</div>
<div class="bg2"></div>
</div>
</body>

View file

@ -45,9 +45,12 @@ These are the existing components, but you can create more in [components.js](/j
(Works with strings, numbers, and Decimals!)
- slider: Lets the user input a value with a slider. The argument a 3-element array: [name, min, max].
The name is the name of the variable in player[layer] that the input that the input is for, and min and max are the limits of the slider.
The name is the name of the variable in player[layer] that the input is for, and min and max are the limits of the slider.
(Does not work for Decimal values)
- drop-down: Lets the user input a value with a dropdown menu. The argument a 2-element array: [name, options].
The name is the name of the variable in player[layer] that the input is for, and options is an array of strings for options you can use.
- upgrades: The layer's upgrades. The argument is optional, and is a the list of rows this component should include, if it doesn't have all of them.
- milestones, challenges, achievements: Display the upgrades, milestones, and challenges for a layer, as appropriate.

View file

@ -2,7 +2,7 @@
Grids are an easier way of making a group of similar clickables. They all have the same behavior, but are different based on their data.
**NOTE: Gridables are similar to clickables in some respects, but are fundamentally different from normal TMT components in quite a few ways. Be sure to keep these in mind:**
**NOTE: Gridables are similar to clickables in some respects, but are fundamentally different from normal TMT Big Features in quite a few ways. Be sure to keep these in mind:**
- Gridable ids use base 100 instead of base 10, so you can have more than 10 tiles in a row. This means that a grid might look like this:
101 102
201 202

View file

@ -98,7 +98,7 @@
<overlay-head id="fakeHead" style="visibility: hidden;">
</overlay-head>
<layer-tab :layer="player.navTab == 'none' ? player.tab : player.navTab" :key="'left'"></layer-tab>
<bg :layer="player.navTab == 'none' ? player.tab : player.navTab" ></bg>
</div>
<!-- Popups -->
@ -117,12 +117,14 @@
</div>
</div>
<div v-if="player.navTab !== 'none' && player.tab !== 'none' && !(gameEnded && !player.keepGoing)" onscroll="resizeCanvas()" style="background-color:var(--background)" v-bind:class="{ fullWidth: player.navTab == 'none' || !tmp.other.splitScreen || !readData(layoutInfo.showTree), col: player.navTab != 'none', right: player.navTab != 'none', fast: true, tab: true}">
<div v-if="player.navTab !== 'none' && player.tab !== 'none' && !(gameEnded && !player.keepGoing)" onscroll="resizeCanvas()" v-bind:class="{ fullWidth: player.navTab == 'none' || !tmp.other.splitScreen || !readData(layoutInfo.showTree), col: player.navTab != 'none', right: player.navTab != 'none', fast: true, tab: true}">
<div v-for="layer in LAYERS">
<div v-if="player.tab==layer">
<layer-tab :layer="layer" :back="'none'" :spacing="'50px'" :key="'left'"></layer-tab>
</div>
</div>
<bg :layer="player.tab" ></bg>
</div>
</div>
</body>

View file

@ -15,6 +15,7 @@ addLayer("c", {
beep: false,
thingy: "pointy",
otherThingy: 10,
drop: "drip",
}},
color: "#4BDC13",
requires: new Decimal(10), // Can be a function that takes requirement increases into account
@ -221,7 +222,7 @@ addLayer("c", {
microtabs: {
stuff: {
first: {
content: ["upgrades", ["display-text", function() {return "confirmed"}]]
content: ["upgrades", ["display-text", function() {return "confirmed<br>" + player.c.drop}], ["drop-down", ["drop", ["drip", "drop"]]]]
},
second: {
embedLayer: "f",

View file

@ -11,7 +11,7 @@ let modInfo = {
// Set your version in num and name
let VERSION = {
num: "2.5.12",
num: "2.6",
name: "Dreams Really Do Come True",
}

View file

@ -515,7 +515,7 @@ function loadVue() {
`
})
// Updates the value in player[layer][data]
// Updates the value in player[layer][data][0]
Vue.component('slider', {
props: ['layer', 'data'],
template: `
@ -524,6 +524,15 @@ function loadVue() {
`
})
// Updates the value in player[layer][data[0]], options are an array in data[1]
Vue.component('drop-down', {
props: ['layer', 'data'],
template: `
<select v-model="player[layer][data[0]]">
<option v-for="item in data[1]" v-bind:value="item">{{item}}</option>
</select>
`
})
// These are for buyables, data is the id of the corresponding buyable
Vue.component('sell-one', {
props: ['layer', 'data'],
@ -599,6 +608,8 @@ function loadVue() {
mouseY,
shiftDown,
ctrlDown,
run,
gridRun,
},
})
}

View file

@ -4,7 +4,7 @@ var gameEnded = false;
// Don't change this
const TMT_VERSION = {
tmtNum: "2.5.12",
tmtNum: "2.6",
tmtName: "Dreams Really Do Come True"
}
@ -333,7 +333,7 @@ function gameLoop(diff) {
clearParticles()
}
if (isNaN(diff)) diff = 0
if (isNaN(diff) || diff < 0) diff = 0
if (gameEnded && !player.keepGoing) {
diff = 0
//player.tab = "gameEnded"